javascript - sockJS自己的事件名称

标签 javascript node.js sockets sockjs

我正在使用 sockjs-node,我想在我自己的事件上发出(使用 conn.write(...) 我只能在“数据”上发出)是否可以这样做?又如何?

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 的行

最佳答案

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

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

在接收端,你会做相反的事情,你可以拥有自己的 eventEmitter,这样你就可以接收 sockJS 数据,将其分解为消息名称和数据,然后将数据发送到消息名称。

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

关于javascript - sockJS自己的事件名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51736837/

相关文章:

javascript - 如何添加带有接受属性的回调函数的事件监听器?

javascript - 将函数传递给另一个函数 : Using a variable within the function as the argument to the functions being passed to it

javascript - 使用表构建的 Jquery Accordion 菜单

javascript - 检索 HTML 属性值 "the DOM 0 way"

python - 套接字断开连接时退出 Python While 循环

node.js - 如何require.resolve包目录?

javascript - 在 Neo4J 中通过 Cypher 添加语句之前删除/转义不需要的符号

php - 安装 laravel bootstrap 时出现 npm 警告

c# - 如何处理空套接字缓冲区

node.js - 如何在Socket.io、Nodejs中为每个房间设置计时器