admin管理员组文章数量:1122961
php7 zeromq,Zeromq
近期在做STF的二次开发(其实也算不上,只是添加一些小功能)
STF使用zeromq进行消息的传递.zeromq几乎支持所有的开发语言(这里可以查看示例)
STF是基于nodejs开发的,使用的zeromq开发包是zmq
push/pull
单向通讯:push负责发送消息,pull负责接收消息,在回调中处理消息;
服务端给客户端发送消息: push作为服务端,pull作为客户端
客户端给服务端发送消息: pull作为服务端,push作为客户端
push.send(msg)
pull.on(‘message’, callback)
多个Client(pull)同时连接Server(push)时:
比如:Client1,Client2,Client3,Client4按顺序分别连接上Server后
Server发送的第1个消息由Client1接收
Server发送的第2个消息由Client2接收
Server发送的第3个消息由Client3接收
Server发送的第4个消息由Client4接收
Server发送的第5个消息由Client1接收
push.js
var zmq = require('zmq');
var sock = zmq.socket('push');
sock.bindSync('tcp://127.0.0.1:3000');
console.log('Publisher bound to port 3000');
var count = 1
setInterval(function() {
// console.log('sending a multipart message envelop');
sock.send(['kitty cats', 'meow!' + count++]);
}, 500);
pull.js
var zmq = require('zmq');
var sock = zmq.socket('pull');
sock.connect('tcp://127.0.0.1:3000');
console.log('Connected to port 3000');
sock.on('message', function(topic, message) {
console.log('received a message related to:', topic.toString(), 'containing message:', message.toString());
});
pub/sub
单向通讯:pub负责发布消息,sub负责订阅消息(只会收到订阅的消息)
服务端给客户端发送消息: pub作为服务端,sub作为客户端
客户端给服务端发送消息: sub作为服务端,pub作为客户端
pub.send(msg)
sub.subscribe(title)
sub.on(‘message’, callback)
有多个sub时,pub发送的title消息,每个sub都可以收到,sub不会接收非title消息
dealer/dealer
双向通讯:服务端可以给客户端发消息,客户端也可以给服务端发消息
dealer.send(msg)
dealer.on(‘message’, callback)
多个Client同时连接Server时:
比如:Client1,Client2,Client3,Client4按顺序分别连接上Server后
Server发送的第1个消息由Client1接收
Server发送的第2个消息由Client2接收
Server发送的第3个消息由Client3接收
Server发送的第4个消息由Client4接收
Server发送的第5个消息由Client1接收
本文标签: php7 zeromqZeroMQ
版权声明:本文标题:php7 zeromq,Zeromq 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1707125947a711761.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论