[英]socket.io with express
我有一個項目,我正在使用socket.io與express,
所以我需要(我嘗試過)播放一條消息,但是來自一個明確的行動。 這是可能的我不知道如何獲得發送或廣播的參考。
app.get('/', function(req, res) {
//i need to send messages from here
});
像使用express + socket.io這樣的其他東西正在和我合作:)
只要我明白,
為什么不將套接字消息類型用作事件而不是http get或post? 在客戶端,您將通過websocket發送消息,讓我們說一個事件屬性。
所以在你的情況下:
<script> // Initialize socket.io ... // and then socket.send({event: 'homepage loaded', foo: 'bar'}); </script>
在服務器端:
var io = io.listen(server); io.on('connection', function (client) { client.on('message', function (message) { if (message.event == 'homepage loaded') { client.broadcast(...); } }); });
您可能想查看我的socket.io + Express入門 。 你想要的是在那里詳細介紹。
// Send to all connected sockets
io.sockets.send('Hello, World!');
// Send to all sockets in a specified room
io.sockets.in('room').send('Hello, Room!');
其中io
是調用socketio.listen()
返回的值。 您可以將該代碼放在應用程序的任何位置,例如在app.get
回調中。
看看我使用ExpressJS + Juggernaut(pubsub over socket.io)的示例repo:
http://github.com/shripadk/express-juggernaut-demo
這可能對您使用發布/訂閱所需的內容有些過分。 但它確實在一定程度上解決了使用常規ExpressJS路由的問題。 克隆存儲庫后簽出master分支:
git checkout master
我找到了一個很好的例子,如何制作我需要的東西,但是與faye一起在這里http://nodecasts.org/ 。
我不知道Juggernaut,Faye和直接Socket.io之間的區別,但是Faye很好
對於我的情況。我認為他們都在內部使用Socket.io。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.