我正在使用websocket从网页中获取数据,但我需要将它与socketIO一起部署到客户端。在我的server.js客户机中,可以很好地连接socketio,但是在数据(Line1 line2)无法正常出现之后,我总是需要重新启动服务器2-3 times.Then。
这是我的解密
var server = require('http').Server(app);
var io = require('socket.io')(server);
const WebSocket = require('ws')
const wss = new WebSocket('gettingDataAdress');
io.on('connection', function (socket) {
console.log("client connected");
wss.on('open', () => {
console.log("send processing");
//line1
})
wss.on('message', () => {
console.log("getting message processing");
//line2
})在重新启动我的server.js 2-3次之后,它可以用于line1和line2,每当我评论socketio部分(我的意思是只使用websocket )时,它就不能directly.However --它可以工作吗?谢谢
发布于 2018-03-22 06:15:00
您正在使用两个不同的websockets ws和socket.io。只使用一个连接到客户端并订阅即将出现的消息。
只有Socket.io
io.on('connection', function (socket) {
console.log("client connected");
socket.on('open', () => {
console.log("send processing");
//line1
})
socket.on('message', () => {
console.log("getting message processing");
//line2
})只有ws
const WebSocket = require('ws');
const ws = new WebSocket('url');
ws.on('open', () => {
//do processing
});
ws.on('message', () => {
//do processing
});发布于 2018-08-06 02:36:23
想写一篇评论,却没有口碑要写,所以决定在这里写。抱歉的!
如果您想订阅,最好使用socket.io-client。然而,socket-io本身并不是订阅wss的合适库。
https://github.com/socketio/socket.io-client/issues/1208
实际上,Socket.IO不是WebSocket实现,它有自己的协议,可以使用WebSocket连接来传输数据-( socket-io客户端库的大部分贡献者)
因此,如果您从wss页面获得数据,那么使用ws库并通过socket-io扩展它。我相信你所做的一切都很好。不过,可能需要修理一下。
Connecting to GDAX websocket api using socket.io with webpack从ws获取数据也有类似的问题。
https://stackoverflow.com/questions/49421550
复制相似问题