首页 > php教程 > php手册 > 正文

zeromq linux 安装+实例

php中文网
发布: 2016-06-06 20:11:06
原创
1792人浏览过

zmq是什么? 这是个类似于Socket的一系列接口,他跟Socket的区别是:普通的socket是端到端的(1:1的关 系),而ZMQ却是可以N:M 的关系,人们对BSD套接字的了解较多的是点对点的连接,点对点连接需要显式地建立连接、销毁连接、选择协议(TCP/UDP)和处理错

zmq是什么?

这是个类似于Socket的一系列接口,他跟Socket的区别是:普通的socket是端到端的(1:1的关 系),而ZMQ却是可以N:M 的关系,人们对BSD套接字的了解较多的是点对点的连接,点对点连接需要显式地建立连接、销毁连接、选择协议(TCP/UDP)和处理错误等,而ZMQ屏 蔽了这些细节,让你的网络编程更为简单。ZMQ用于node与node间的通信,node可以是主机或者是进程。

引用官方的说法: “ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ的明确目标是 “成为标准网络协议栈的一部分,之后进入Linux内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需要的“传统”BSD套接 字之上的一 层封装。ZMQ让编写高性能网络应用程序极为简单和有趣。”

以下记录一下在linux安装mq并且配置实例的过程。

cd /data/software/
wget http://download.zeromq.org/zeromq-3.2.4.tar.gz
cd /data/src
tar zxf ../software/zeromq-3.2.4.tar.gz
cd zeromq-3.2.4
./configure
make && make install
yum -y install git
cd /data/src
git clone git://github.com/mkoppanen/php-zmq.git
cd php-zmq
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
登录后复制

然后
vi /etc/php.ini 加上

extension = "zmq.so"
登录后复制

重启php,可以在phpinfo页面查看是否已经正确安装了zmq模块:

1 zeromq linux 安装+实例

到这里已经安装完成。剩下的就是开启server端和client端的测试的事情了。
比如: 我在server端,有这样一个simple-server.php

<?php
/*
The server waits for messages from the client
and echoes back the received message
*/
$server = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_REP);
$server->bind("tcp://127.0.0.1:5555");  //这里的IP号和端口号分别对应本机的IP号和任意一个没在用的端口号
//client连接server的时候,必须填上跟这里一致的IP号和端口号,才会执行该脚本的内容。
/* Loop receiving and echoing back */
while ($message = $server->recv()) {
echo "Got message: $message\n";
/* echo back the message */
$server->send($message);
}
登录后复制

client端有这样一个程序:client.php

响应式黑色展台设计整站模板1.4.2
响应式黑色展台设计整站模板1.4.2

响应式黑色展台设计整站模板,自带内核安装即用,图片文本实现可视化,方便修改,支持多种内容模型及自定义功能,可根据需要自行添加。模板特点: 1、安装即用,自带人人站CMS内核及企业站展示功能(产品,新闻,案例展示等),并可根据需要增加表单 搜索等功能(自带模板) 2、支持响应式 3、前端banner轮播图文本均已进行可视化配置 4、伪静态页面生成 5、支持内容模型、多语言、自定义表单、筛选、多条件搜

响应式黑色展台设计整站模板1.4.2 0
查看详情 响应式黑色展台设计整站模板1.4.2
<?php
/*
The client sends two messages using two different sockets
and then exits
*/
$imgname = $_GET['imgname'];
/* Create new queue object */
$queue = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_REQ, "MySock1"); //这里的MySock1必须是唯一的,也就是说有别的client的话,要换成另外的不同的名字,不然会有问题。
$queue->connect("tcp://127.0.0.1:5555");//这里的ip和端口号必须和相应的server的一致
/* Assign socket 1 to the queue, send and receive */
var_dump($queue->send($imgname)->recv());
登录后复制

zeromq可以跨平台、跨语言,高并发的处理效率也不错,是不错的socket编程的一种方案!

Tips: 如果出现连不上server的情况,请在浏览器打开simple-server.php。 貌似可能和第一次用的时候的初始化有关。

参考资料:

http://zeromq.org/bindings:php

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号