将数据从websocket发送到socket.io

时间:2015-10-10 08:38:27

标签: javascript node.js websocket socket.io


我使用websocket接口连接到websocket服务器。如果我想通过我的websocket接口将我从websocket服务器收到的数据发送到通过http服务器连接到我的客户端,我应该使用socket.io吗?

enter image description here

所以最后我将socket.io附加到http服务器和websocket接口以获取数据,如果消息传来将通过socket.io发送到客户端。这是最好的设置吗?

代码示例:

// Require HTTP module (to start server) and Socket.IO
var http = require('http'),
    io = require('socket.io');
var WebSocket = require('ws');


var ws = new WebSocket('ws://localhost:5000');

// Start the server at port 8080
var server = http.createServer(function (req, res) {

    // Send HTML headers and message
    res.writeHead(200, {
        'Content-Type': 'text/html'
    });
    res.end('<h1>Hello Socket Lover!</h1>');
});
server.listen(8080);

// Create a Socket.IO instance, passing it our server
var socket = io.listen(server);

ws.on('open', function open() {
    ws.send('something');
});

ws.on('message', function (data, flags) {
    // here the data will be send to socket.io
});

// Add a connect listener
socket.on('connection', function (client) {

    // Success!  Now listen to messages to be received
    client.on('message', function (event) {
        console.log('Received message from client!', event);
    });
    client.on('disconnect', function () {
        clearInterval(interval);
        console.log('Server has disconnected');
    });

});

1 个答案:

答案 0 :(得分:0)

是的,你的设计是正确的。

但是,您应该记住的一件事是在验证后将消息发送到正确的客户端。在我看来,犯这个错误很容易,部分原因是使用websockets进行消息传递的简单性。