6

私はnode.jsから始めたばかりですが、これまでのところ、クライアントがサーバーと通信する方法は次のとおりです。

//Client Code 1
var iosocket = io.connect();
iosocket.on('connect', function () {
   iosocket.send("Here's some info");
});

'message'イベントが受信されると、サーバーはこれを認識します。

//Server Code 1
var socketio = require('socket.io');
var io = socketio.listen(server);
io.sockets.on('connection', function (client) {    
    client.on('message', function(msg) {
        //msg== "Here's some info"
    }
});

ここで、クライアントが次のようないくつかの異なるイベントを提供できるようにしたいと思います。

//Server Code 2
client.on('buttonClicked', function() { ...
client.on('nameChanged', function(newName) { ...

しかし、私はその方法を理解するのに苦労しています。私が持っている部分を使用して思いつくことができる唯一の解決策は、メッセージを送り返すことですが、それらに情報のキーと値のペアを含めるようにします。

//Server Code 3
client.on('message', function(msg) {
   kvp = message.split(',');
   if( kvp[0] == 'buttonClicked' )
      ...
   else if( kvp[0] == 'nameChanged' )
      ...
}

しかし、これを行うための適切な方法があると確信しています。これは、まだどの例でも見たことがありません。サーバーが使用したいイベントを生成する方法に似たものがあると思います。

//Server Code 4
io.sockets.emit('serverCustomEvent', eventData);

これは、クライアントが以下を使用して監視します。

//Client Code 4
iosocket.on('serverCustomEvent', function(data) {
    //process data
});

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

11

クライアントで使用emitして、カスタムメッセージをサーバーに送信できます。

iosocket.emit('serverCustomEvent', data);

とサーバー上

io.sockets.on('connection', function(socket) {
    socket.on('serverCustomEvent', login);
});
于 2012-12-05T22:07:18.830 に答える