gpt4 book ai didi

javascript - 无法收听从羽毛服务器发送到客户端的事件

转载 作者:行者123 更新时间:2023-12-05 00:29:47 25 4
gpt4 key购买 nike

我正在构建一个使用羽毛和 socketio 的服务器。
我正在尝试使用羽毛 channel 机制来通知相关用户(连接)相关事件。
用户属于组,因此在连接到服务器后,我将连接添加到适当的 channel 。
发布后,内 app.publish ,
我得到了正确的数据并看到连接已附加到 channel ,但无法弄清楚如何在客户端上收听它。
这是一个简化的 channels.js :

app.on('connection', async (connection) => {
connection.userGroups.forEach((group) => {
app.channel(`group.groupId`).join(connection);
}
app.channel('1').join(connection); // dummy channel
}

app.publish((data, context) => {
console.log(app.channel('1')); // output shown below

return app.channel('1');
});
我使用 Postman 作为客户端,发送 patch请求,并监听名为 rooms patched 的事件(rooms 是我的服务名称)如 feathers docs 中所述.没有事件到达。
如果我使用原始 socketio 实例并从那里发出,一切似乎都工作正常,我在客户端中得到了事件
app.io.sockets.in('some room').emit('rooms patched', data);
但据我了解,它覆盖了整个 channel 机制。
通过检查 app.publish 的输出
Channel {
_events: [Object: null prototype] {
empty: [Function: bound onceWrapper] { listener: [Function (anonymous)] }
},
_eventsCount: 1,
_maxListeners: undefined,
connections: [
{
provider: 'socketio',
headers: [Object],
userInfo: [Object],
userGroups: [Array]
}
],
data: null,
[Symbol(kCapture)]: false
}
我们可以看到连接 那里。
谁能帮我解决这个问题?

最佳答案

是否需要在客户端打开端口以创建 channel ,以便通信行是两种方式。也许JavaScript将有一些代码来打开客户端端口。

关于javascript - 无法收听从羽毛服务器发送到客户端的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70259246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com