PHP的消息通信机制测试实例


Posted in PHP onNovember 10, 2016

本文实例讲述了PHP的消息通信机制。分享给大家供大家参考,具体如下:

<?php error_reporting(E_ALL&~E_WARNING&~E_NOTICE);
/**
 * Example for sending and receiving Messages via the System V Message Queue
 *
 * To try this script run it synchron/asynchron twice times. One time with ?type=send and one time with ?type=receive
 *
 * @author     Thomas Eimers - Mehrkanal GmbH
 *
 * This document is distributed in the hope that it will be useful, but without any warranty;
 * without even the implied warranty of merchantability or fitness for a particular purpose.
 */
ob_implicit_flush(1);
header('Content-Type: text/plain; charset=ISO-8859-1');
echo "Start...\n";
// Create System V Message Queue. Integer value is the number of the Queue
//$queue = msg_get_queue(100379);
$mesg_key = ftok(__FILE__, 'm');
$mesg_id = msg_get_queue($mesg_key, 0666);
$queue = $mesg_id;
// Sendoptions
$serialize_needed=false; // Must the transfer data be serialized ?
$block_send=false;    // Block if Message could not be send (Queue full...) (true/false)
$msgtype_send=1;     // Any Integer above 0. It signeds every Message. So you could handle multible message
             // type in one Queue.
// Receiveoptions
$msgtype_receive=1;    // Whiche type of Message we want to receive ? (Here, the type is the same as the type we send,
             // but if you set this to 0 you receive the next Message in the Queue with any type.
$maxsize=100;       // How long is the maximal data you like to receive.
$option_receive=MSG_IPC_NOWAIT; // If there are no messages of the wanted type in the Queue continue without wating.
             // If is set to NULL wait for a Message.
// Send or receive 20 Messages
for ($i=0;$i<20;$i++) {
   sleep(1);
  ob_flush();
  flush();
 $message='Hello, This is Flandy,now is '.date("H:i:s",time());   // Transfering Data
 // This one sends
  if (isset($_GET['type'])&&$_GET['type']=='send') {
  if(msg_send($queue,$msgtype_send, $message,$serialize_needed, $block_send,$err)===true) {
   echo "The ".$i." Message has been sent, the messge is ".$message."\n";
  } else {
   var_dump($err);
  }
 // This one received
 } else {
   $queue_status=msg_stat_queue($queue);
   echo 'Get Messages in the queue: '.$queue_status['msg_qnum']."\n";
   print_r($queue_status);
   echo "\n";
  if ($queue_status['msg_qnum']>0) {
   if (msg_receive($queue,$msgtype_receive ,$msgtype_erhalten,$maxsize,$daten,$serialize_needed, $option_receive, $err)===true) {
       echo "Received data:".$daten."\n";
   } else {
       var_dump($err);
   }
  }
 }
}
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
可定制的PHP缩略图生成程式(需要GD库支持)
Mar 06 PHP
PHP sprintf()函数用例解析
May 18 PHP
memcache命令启动参数中文解释
Jan 13 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
php发送get、post请求的6种方法简明总结
Jul 08 PHP
php实现改变图片直接打开为下载的方法
Apr 14 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
PHP编写daemon process 实例详解
Nov 13 PHP
如何打开php的gd2库
Feb 09 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 PHP
eval(cmd)与eval($cmd)的区别与联系
Jul 07 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 #PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
Nov 10 #PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 #PHP
PHP yii实现model添加默认值的方法(两种方法)
Nov 10 #PHP
PHP实现的曲线统计图表示例
Nov 10 #PHP
PHP  Yii清理缓存的实现方法
Nov 10 #PHP
PHP模拟http请求的方法详解
Nov 09 #PHP
You might like
php正则
2006/07/07 PHP
无数据库的详细域名查询程序PHP版(1)
2006/10/09 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
JavaScript 学习笔记(四)
2009/12/31 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
JS 去除Array中的null值示例代码
2013/11/20 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
jquery实现textarea 高度自适应
2015/03/11 Javascript
JavaScript更改原始对象valueOf的方法
2015/03/19 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
2018/02/23 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
Python Flask基础教程示例代码
2018/02/07 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
理想高通滤波实现Python opencv示例
2019/01/30 Python
Django ModelForm组件使用方法详解
2019/07/23 Python
python3正则模块re的使用方法详解
2020/02/11 Python
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
2013年保送生自荐信格式
2013/11/20 职场文书
实习自我鉴定
2013/12/15 职场文书
咖啡店创业计划书
2014/08/15 职场文书
镇创先争优活动总结
2014/08/28 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
法定授权委托证明书
2014/09/27 职场文书
党员查摆剖析材料
2014/10/10 职场文书
Vue+Flask实现图片传输功能
2022/04/01 Vue.js