与nodejs ws(einaros)创建聊天

时间:2013-11-07 18:42:14

标签: node.js websocket

昨天我开始使用这个模块。我正在尝试与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>');
    }
});

2 个答案:

答案 0 :(得分:12)

解释here

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);
  });
});

答案 1 :(得分: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);
    });  
}):