我使用websocket接口连接到websocket服务器。如果我想通过我的websocket接口将我从websocket服务器收到的数据发送到通过http服务器连接到我的客户端,我应该使用socket.io吗?
所以最后我将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');
});
});
答案 0 :(得分:0)
是的,你的设计是正确的。
但是,您应该记住的一件事是在验证后将消息发送到正确的客户端。在我看来,犯这个错误很容易,部分原因是使用websockets进行消息传递的简单性。