我正在使用sockjs-node,我想在我自己的事件上发出(使用conn.write(...)我只能在'data'上发出)是否可以这样做?又如何?
echo.on('connection', function(conn) {
conn.emit('message', {msg:'xd'}); //I know that it doesnt work, just i would like to know is it possible to achieve emitting on my own events using sockjs
conn.on('close', function() {
console.log('close');
});
conn.end();
});
例如,某事物类似于conn.emit的行
答案 0 :(得分:1)
sockJS的工作方式类似于webSocket,它只是向您传递数据包。如果您希望在此之上建立一个消息传递层,则可以很容易地构建一个消息传递层,但这不是sockJS本身的一部分。
要构建自己的消息层,您可以在支持.emit(msg, data)
的sockJS传输之上构建一个简单的抽象,然后通过sockJS发送一条包含两个部分的消息,即消息名称和数据,也许转换为JSON,以便通过sockJS发送JSON。
在接收端,您将执行相反的操作,并且可以拥有自己的eventEmitter,以便接收sockJS数据,将其分解为消息名称和数据,然后将数据发送到消息名称。
仅供参考,使用socket.io可能很有意义,因为它已经是webSocket之上的消息传递层(以及其他一些功能,例如自动重新连接)。