5

昨天我开始使用这个模块。我正在尝试使用 websockets 进行聊天。

我有一个问题,我不知道如何将发送客户端的消息传递给服务器,然后将其显示给所有用户。在服务器端我有这个代码:

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 回答
0
var WebSocketServer = require('ws').Server
var webserver = new WebSocketServer({ port:3000 });

webserver.on("message",function(message) {
    webserver.clients.forEach(function(client) {
        client.send(message);
    });  
}):
于 2016-08-18T07:34:09.013 回答