gpt4 book ai didi

socketcluster - 如何在 socketcluster 上以编程方式创建 channel ?

转载 作者:行者123 更新时间:2023-12-04 12:48:34 26 4
gpt4 key购买 nike

我正在考虑使用 socketcluster构建实时应用程序。文档非常清楚,但我找不到以编程方式按需创建 channel 的方法。

我的需要是:作为用户,我想调用一个 REST API,它会创建一个 channel ,该 channel 会立即在服务器上启动并运行。

例如,从客户端调用:POST https://<myServer>/api/channels带有 JSON 正文 { "channel": "myChannel}会创建一个 myChannel服务器上的 channel 和我的客户端代码将能够直接订阅(在收到服务器响应后):

 var myChannel = socket.subscribe('myChannel');
myChannel.publish('myChannel', 'I am here !');
myChannel.watch(function (data) {
console.log('received data from myChannel:', data);
});

我想这个新创建的 channel 会使用我的授权中间件作为 middlewares are defined at server level (wsServer.addMiddleware(wsServer.MIDDLEWARE_SUBSCRIBE, ...)

非常感谢您的帮助,

皮埃尔

最佳答案

使用 SocketCluster, channel 会自动为您创建和销毁,因此您无需管理它们的生命周期。如果至少有一个客户端订阅(基于 channel 名称),将在后端创建一个 channel ,并在所有这些客户端断开连接或取消订阅后自动销毁。 SC 也考虑了失败案例 - 例如如果互联网连接意外丢失。

SC 旨在高效地即时创建和销毁许多独特的 channel 。每个用户可以拥有数百个唯一 channel (因此总共可能有数千甚至数百万个唯一 channel )。如果 channel 处于空闲状态,则它们根本不会消耗任何 CPU,并且每个 channel 的内存占用空间很小。

SC 中的 channel 不是消息队列(与 RabbitMQ、NSQ、Kafka、Stomp 提供的不同...); SC 不会将消息存储在持久队列中(尽管您可以使用自己的持久性逻辑扩展 SC)。

关于socketcluster - 如何在 socketcluster 上以编程方式创建 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42138767/

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