簡體   English   中英

socket.io with express

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM