Terry-Mao / goim

goim

Home Page:https://goim.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

accept Rooms

1bazinga25 opened this issue · comments

想知道一个人能否同时订阅多个room的消息,类似于我有A,B,C三个群,我同时也在这三个群里,三个群的消息我都能同时收到?

yes, u do

yes, u do

能给个例子吗?

{"mid":1, "key":"test_server_key", "room_id":"test://123", "platform":"web", "accepts":[1000,1001,1002]}

这个room id 我如何写多个?

commented

同一人进到三个房间
{"mid":1, "room_id":"test://1000", "platform":"web", "accepts":[1000,2000]}
{"mid":1, "room_id":"test://1001", "platform":"web", "accepts":[1001,2000]}
{"mid":1, "room_id":"test://1002", "platform":"web", "accepts":[1002,2000]}

广播
curl -d 'broadcast message' http://api.goim.io:3111/goim/push/all?operation=2000

单房间
curl -d 'room message' http://api.goim.io:3111/goim/push/room?operation=1000&type=test&room=1000
curl -d 'room message' http://api.goim.io:3111/goim/push/room?operation=1001&type=test&room=1001
curl -d 'room message' http://api.goim.io:3111/goim/push/room?operation=1002&type=test&room=1002

试试看行不行

这样似乎有问题,相当于建立了3个ws,那我在往mid=1这个人推消息的时候他会收到3次

这个应该是业务group,通过key进行推送,一般跟微信类似有group大小限制

想知道一个人能否同时订阅多个room的消息,类似于我有A,B,C三个群,我同时也在这三个群里,三个群的消息我都能同时收到?

服务端已经支持, 客户端处理即可.
看来我有空了, 写一个客户端定制的小文章, 嗯哼, 有点儿意思

@tsingson tcp 发消息更迫切

tcp 发消息? 这个在 /api 中已经定义了, 加一个 tcp -------> gRPC 就可以了.

那这样 一个client 要维持2个tcp 长连接?

明白你的意思了。。###

不是, 还是一个长连接, 但这个长连接中有两个 session , 一个处理下行, 一个处理上行.

上行的 tcp 收到要发送的消息后, 透过 comet 中的 logic gRPC client 发送给 logic gRPC server 就可以完成消息上行发送.

tcp -》 comet -》 logic——》kafka -> job ——》comet
我本来还准备 tcp -》 comet ——> comet
走logic 就不用改太多还可以,限流了

可以这样玩一下:


client TCP -----> comet ( queue ) -------> logic -----> job  ------> 发到其他 comet 连接的其他 client
                                               |
                                               |
其他cient<-------------------------( 同一个comet的)                                      

总的来说, 这个可以讨论讨论, 比起 goim 直接提供 http client (上行发送消息)----------> logic 要罗嗦一些

先实现第一种,这样如果要实现信息保存,是否好友这些验证,业务逻辑。简单点

先实现第一种,这样如果要实现信息保存,是否好友这些验证,业务逻辑。简单点

第一种?

应该是在logic实现类似微信的group方式,通过channel key进行批量推送,比如微信、QQ通常group都不允许太大。