我将socketio放在zmq中,但它在下面不起作用是代码不确定我做错了什么
var io = require('socket.io').listen(2939);
var zmq = require('zmq');
var socket = zmq.socket('sub');
console.log("Connecting to Currency Stream....");
socket.subscribe("");
socket.on('message', function (data){
//console.log(data.toString());
io.sockets.on('connection', function(socket){
console.log("In socket.io");
console.log(data.toString());
socket.emit("live_rates",
{date: data[0], time: data[1],
open: data[2], high: data[3],
low: data[4], close: data[5]});
socket.emit("news", {hello: 'world'});
console.log("emitted");
});
});
socket.connect('tcp://localhost:3191');
io.socket.on 中的代码没有运行,握手成功,我可以在日志窗口中看到。当我将代码放入 zmq 中时(取消注释 //console.log(data.toString()); )它正在显示数据。
我在这里真正做的是从 zmq tcp 端口 3191 上的 zmq 服务器获取数据并将其转发到 socket.io http 端口 2939,然后通过使用 html 页面连接到端口 2939 在浏览器上获取数据。我不希望在客户端使用 zmq,因为 socket.io 非常适合该游戏。
还有一个单独的 socket.io 连接,即 io.sockets.on 正在工作,但在 zmq 套接字内它失败了!
任何人
紫山