2016-05-10 14 views
1

socket.io経由でメッセージを送信しようとしています。私はエクスプレスルータが呼び出されたときにそれをしたい。エクスプレスルータ内のソケット経由でメッセージを送信する方法

var express   = require("express"); 
var app    = express(); 
var http   = require('http').Server(app); 
var io    = require('socket.io')(http); 
var bodyParser  = require("body-parser"); 
var router   = express.Router(); 

router.route("/test").post(function(req,res){ 
    console.log(req.body) 
    response = {"error" : false,"message" : "api worked"}; 
    /*I want to emit a message via socket here */ 
}); 


app.use('/',router); 
app.listen(3010); 
console.log("Listening to PORT 3010"); 

私はどのようにしてソケットを使用するのかよく分かります。しかし、私は私が望むことをする方法を見つけることができませんでした。私は次の質問もチェックしました。しかし、私はそれはあなたのために働いていたので

How to use socket.io in express routes?

+1

誰にメッセージを送信しますか?どのユーザーに?接続しているすべてのユーザーに?または現在の要求をした人に? – jfriend00

+0

技術的には、「example.com/test」の例としてapiを作成したいと思っています。ユーザーがAPIを呼び出すと、アンドロイドアプリにプッシュ通知を送信します。だから私の場合、私はすべてのユーザーにメッセージを送信したい。 –

+1

'io.emit(" someMsg "、someData)'は接続されているすべてのユーザーに送信します。もちろん、クライアントはメッセージを受け取るためにsocket.ioに接続する必要があります。 – jfriend00

答えて

2

は答えとして私のコメントを投稿成し遂げることができませんでした。

io.emit("someMsg", someData); 

は、接続中のすべてのユーザーに送信されます。メッセージを受け取るためには、もちろん、クライアントはsocket.ioと接続する必要があります。

関連する問題