sockJS自己的事件名称

时间:2018-08-07 23:42:23

标签: javascript node.js sockets sockjs

我正在使用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的行

1 个答案:

答案 0 :(得分:1)

sockJS的工作方式类似于webSocket,它只是向您传递数据包。如果您希望在此之上建立一个消息传递层,则可以很容易地构建一个消息传递层,但这不是sockJS本身的一部分。

要构建自己的消息层,您可以在支持.emit(msg, data)的sockJS传输之上构建一个简单的抽象,然后通过sockJS发送一条包含两个部分的消息,即消息名称和数据,也许转换为JSON,以便通过sockJS发送JSON。

在接收端,您将执行相反的操作,并且可以拥有自己的eventEmitter,以便接收sockJS数据,将其分解为消息名称和数据,然后将数据发送到消息名称。

仅供参考,使用socket.io可能很有意义,因为它已经是webSocket之上的消息传递层(以及其他一些功能,例如自动重新连接)。