我們啓動了一項名爲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>
此示例演示如何構建消息並將其傳遞到服務器。默認情況下,郵件將循環回發件人。 「發件人」是演員,默認情況下,發件人將向其自身發送消息。您可以自定義actor和target。比如你想給每個人發送一條消息。
在服務器上,你可以添加這個來強制你的所有消息發給每個人。
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
項目