c# - 删除群组频道时未发送 PubNub 消息
问题描述
我们正在尝试使用以下方案一次将消息发布到多个通道。
本质上,每个客户端都维护一个组通道,每当服务器想要向多个客户端发送消息时,它都会执行以下操作:
- 创建临时频道(每次使用新的 GUID 作为名称)。
- 将临时频道添加到每个客户的群组频道。
- 将消息发送到临时频道。
- 删除临时频道。
当我们调试时,一切都很好,因为我们到处都设置了断点。但是我们注意到,一旦我们删除断点,消息将不再到达其目的地。我们最终将问题缩小到上面的第 4 步(删除临时频道)。当我们注释掉该代码并保留临时通道时,消息最终会到达目的地。
上面PubNub推荐的方案,具体说明如下:
一旦发布成功(发布成功),您就可以从每个频道组中删除该频道。
我们正在使用 PubNub 的 REST api 和 RestSharp 来发出请求,上面的说法似乎并不成立,除非我们做错了什么。
这是发送消息的代码:
var request = new RestRequest("publish/{pub_key}/{sub_key}/0/{channel}/0", Method.POST); //No callback rigth now <TODO>
request.AddUrlSegment("pub_key", _pubNubPubKey);
request.AddUrlSegment("sub_key", _pubNubSubKey);
request.AddUrlSegment("channel", channel);
request.AddJsonBody(messageJson);
var response = await ExecuteAsync(request);
只有当该响应返回 true 时,才会执行删除通道的代码:
var request = new RestRequest("v1/channel-registration/sub-key/{sub_key}/channel-group/{groupChannelName}", Method.GET);
request.AddUrlSegment("sub_key", _pubNubSubKey);
request.AddUrlSegment("groupChannelName", groupChannelName);
request.AddParameter("remove", channelName);
有任何想法吗?谢谢。
解决方案
推荐阅读
- azure - 在 Exchange Online 上运行 Add-DistributionGroupMember PS cmdlet 时出现权限错误
- azure - 如何检索部署到 ACI 的训练有素的模型 docker 映像?
- mongoose - 如何使用 Mongoose 从数据库填充到不同的字段?
- javascript - 如何清理 Nuxt js 额外的 div 容器?
- google-apps-script - 从 Google 工作表插件将 Appscript 部署为 Webapp
- c - 将一个 int 乘以一个 int 得到一个浮点数返回 0 语言是 C
- linux - Dup2() 使用和输出重定向
- flutter - 当我启动我的颤振应用程序时,我的登录屏幕没有加载
- javascript - 如何按特定日期范围对 MongoDB 记录进行分组?
- python - __new__ 的 kwargs 中的更新无法进入 __init__?