我们开始了一个名为bus.io
npm 的项目。它应该可以帮助你。它简化了将套接字连接到 pub sub 并将消息分发给它们。
在服务器上。
var express = require('express')
var app = express();
app.use(express.static(__dirname+'/public'));
var server = require('http').Server(app).listen(3000);
var bus = require('bus.io')(server);
在客户端。
<script type="text/javascript src="/bus.io/bus.io.js">
var sock = io.connect();
sock.on('connect', function () {
sock.message().action('say').content('hello').deliver();
});
sock.on('say', function (msg) {
console.log(msg.content());
});
</script>
此示例演示构建消息并将其传递到服务器。默认情况下,消息将循环回发送者。“发件人”是一个演员,默认情况下,发件人会向自己发送消息。您可以自定义演员和目标。例如,您想向所有人发送消息。
在服务器上,您可以添加它以强制您的所有消息发送给每个人。
sock.in(function (msg, sock, next) {
msg.target('everyone').deliver();
});
或者在客户端。
sock.message().target('everyone').action('say').content('hello').deliver();
还有一个速记。
sock.message({target:'everyone', action:'say', content:'hello'}).deliver();
您还可以更改演员的分配方式,默认情况下它是socket.id
.
bus.actor(function (sock, cb) {
//so if you had a session you could get the user name from the session
cb(null, sock.handshake.session.user);
});
消息通过总线自动从客户端传播到其他客户端。总线建立在 redis 和 socket.io 之上。
如果您有任何问题或需要帮助,请联系我们的http://turbonetix.io或 github 上的项目https://github.com/turbonetix/bus.io.git