5

昨日、このモジュールを使い始めました。Websocketで何かをするためのチャットをしようとしています。

クライアントをサーバーに送信するメッセージを渡して、すべてのユーザーに表示する方法がわからないという問題があります。サーバー側には、次のコードがあります。

var ipaddress = 'localhost';
var port = 8080;

var WebSocketServer = require('ws').Server
    , ws = new WebSocketServer({host:ipaddress, port:port});

ws.on('connection', function(ws) {
    console.log('New connection');
    ws.on('message', function(message) {
        ws.send(message);
    });
});

console.log('Listening to ' + ipaddress + ':' + port + ' ...');

クライアント側では、この他のコード:

jQuery(document).ready(function($) {
    var content = $('#screen');
    var message = $('input[type="text"]').val();
    var ws = new WebSocket('ws://localhost:8080');

    ws.onopen = function() {
        console.log('Connected');
    };

    $('input[type="button"]').click(function() {
        ws.send(message);
    });

    ws.onmessage = function(msg) {
        console.log('Received message from server: ' + msg.data);
        addMessage(msg.data);
    }

    function addMessage(message) {
        content.prepend('<p><span>' + message + '</span></p>');
    }
});
4

2 に答える 2

12

ここで説明されています:

var WebSocketServer = require('ws').Server
  , wss = new WebSocketServer({host:ipaddress, port:port});

wss.broadcast = function(data) {
  for (var i in this.clients)
    this.clients[i].send(data);
};

// use like this:
wss.on('connection', function(ws) {
  ws.on('message', function(message) {
    wss.broadcast(message);
  });
});
于 2013-11-07T18:48:08.677 に答える