2011-10-18 13 views
1

リアルタイム更新メカニズム:ユーザー書き込み - > php mysqlに保存 - > php nodeJSに情報を送信 - > nodeJS変更をすべての加入者に送信 - >リアルタイムで。ポート80経由でブロードキャストするnodeJS socket.ioサーバーをトリガーする

Socket.ioサーバーはうまく動作し、ポート8080で動作します。ポート80でノードhttpサーバーを実行しています。httpサーバーでトリガーメッセージを取得して、すべてのsocket.ioクライアントにメッセージを送信するにはどうすればよいですか?それが送信しますので、これはbroadcastに異なっていること

io.sockets.send("Messages")

注:特定のソケット参照することなく、接続されたすべてのソケットに送信する代わりに、次を使用する必要がありますSocket.IO 0.7では

var io = require('socket.io').listen(8080); 

var http = require('http'); 
http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Message Broadcast\n'); 
    console.log("Message Sent"); 

    //DOES NOT SEEM TO WORK, error 
    io.broadcast("Messages"); 

    //No error but no messages 
    io.emit("Message"); 

}).listen(80, "0.0.0.0"); 


/** 
Other socket.io code which works well.. 
.... 

答えて

2

すべてのソケット以外の接続を開始したソケット - もちろんあなたの現在のコードでは十分ではない理由があるので、ソケット参照を送信する必要があります。

wikiページからの引用:Socket.IO/Wiki

あなたがio.socketsを参照できるすべての人にメッセージを送信したい場合:

io.sockets.send('message');

io.sockets.emit('event');

+0

ありがとう!また興味のある方は、このリンクをチェックしてください。http://stackoverflow.com/questions/6993725/socket-io-0-7-can-not-call-broadcast-send/7002545#7002545 – Pasta

+0

np!他の変更点については、Wikiリンクを参照してください。 – f0x

関連する問題