2011-08-03 11 views
4

私はnodejs/socket.io(v 0.7)サーバーを実行してデータをWebクライアントに送ります。それは大きく働く。PHPとcURLを使ったNodeJS/Socket.ioへのアクセス

アプリケーションを拡張するには、PHPの上でsocket.ioをトリガーするか影響を与える必要があります。私は、nodejs httpサーバーでhttpを介してcURLで動作するソリューションを知っています。

可能な解決策の1つは、socket.ioサーバーとnodejs httpサーバーを同じapp.jsで実行することですクライアントはsocket.ioに接続して通信し、 "個別の" httpサーバー(socket.io以外のポートでリッスンしている)への唯一の接続は、それぞれcURLを介してPHPサーバーから127.0.0.1になります。

両方のサーバーが同じスコープにあるため、httpサーバーはsocket.ioサーバーでイベントをトリガーできます。

私の質問:何か意味がありますか? PHPのsocket.ioでイベントをトリガするためのクリーンなソリューションはありますか?

答えて

1

私はそれが妥当かつ直接的な方法だと思います。それは実行の順序を扱うために注意するように注意するように思われるが、それはたぶんノードの表示との私の不確実性です。

+0

[OK]を以下のようにEMITイベントをトリガすることができ、ありがとうございました。私はそれを好きにします。 – helix

1

私はpusher APIのように思える解決策を書いています。それは部屋(チャネル)の概念を利用しています。 express経由のルートから、私はPHPを使ってカールして部屋(チャンネル)にメッセージを送ることができます。

io.sockets.in('your room').json.send('your json'); 

私は(うまくいけば一週間以内)、将来的にプロジェクトをオープンソース化したいのですが、うまくいけば、あなたは画像を取得します。 1.3.3より大きいバージョン(古い可能性がある)と

+0

こんにちはアルフレッド、それは私が探しているかどうかわからない。とにかく、あなたが何か偉大なオープンソースを持っているなら、終わったらここにリンクを投稿することを忘れないでください! – helix

+1

解決策を出版したことがありますか?私はこれに非常に興味があります。 – EsTeGe

+0

@EsTeGe私は回想しました:$、でも私はそれについて作業を続けたいと思います。 – Alfred

0

socket.io、あなたが

//send broadcast message to all connecting clients 
io.emit([message event],[your message body obj or str]); 

// send to specific user 
io.to([your room]).emit([message event], [your message body obj or str]); 
関連する問題