删除群组频道

时间:2019-09-10 20:31:13

标签: c# asp.net-core pubnub

我们正尝试使用以下scheme将消息发布到多个渠道。

本质上,每个客户端都维护一个组通道,每当服务器要向多个客户端发送消息时,它都会执行以下操作:

  1. 创建临时频道(每次使用新的GUID作为名称)。
  2. 向每个客户的群组频道添加临时频道。
  3. 将消息发送到临时频道。
  4. 删除临时频道。

在调试时一切正常,因为我们在各处设置了断点。但是我们注意到,一旦删除断点,该消息将不再到达其目的地。我们最终将问题缩小到了上面的第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);

有什么想法吗?谢谢。

0 个答案:

没有答案