1,使用私有频道需要鉴权,如下代码将access_token 传给服务端,在服务端auth接口里面对token进行验证,这样可以吗,或者有更优雅的办法?
var connection = new Push({
url: 'ws://127.0.0.1:3131', // websocket地址
app_key: 'xxxx',
auth: '/plugin/webman/push/auth?token=111111' // 订阅鉴权(仅限于私有频道)
});
2,群聊场景如何实现,新建一个频道,所有客户端订阅这个频道吗?
3,单聊如何实现,a->b 发送消息,a订阅a->b 这个频道才能发消息,b也需要订阅a->b这个频道才能收到消息,每新增一个单聊,都需要新增一个频道吗?这样是否需要一个频道接口?或许有更优雅的办法?
4,a给b发送离线消息,b不在线,服务端将消息存储下来,定时器检测b的状态,b 上线将消息推送给b,还是写一个离线消息接口,上线后主动查询未读的离线消息?
1、一般不用传token,因为浏览器发起请求服务端会直接拿到session。如果你没用session的话,可以传token
2、一个群聊一个频道
3、单聊每个用户订阅一个自己的频道,给哪个用发消息直接向对应的频道发布消息,发布时带上发布人的id用来区和谁群聊
4、上线主动ajax请求读一遍未读消息
好的,谢谢老大,还有疑问:
1,关于单聊,每个用户订阅自己的频道就能收到发送给自己的消息,这个我理解了;
如果要给别人发送消息,是否要订阅对方的频道?
意思就是a->b,a->c发送消息,a是否需要订阅a->b,a->b这个频道
2,多个单聊的情况下,聊天列表如何实现,订阅对方的频道并将频道列表作为聊天列表吗?
3,离线消息处理问题,服务端需要对消息做一些处理,比如当用户下线时,记录发给该用户的消息,记录消息阅读状态,这个并没有找到onmessage,onclose这些事件,请问应该怎么处理
1、对于单聊来说,用户a只订阅a的频道,b只订阅b的频道,没必要订阅a-b等频道
2、频道只做消息推送,和谁在聊天写入数据库,聊天列表从数据库读
3、webman/push 有webhook,会通知哪个频道下线了,比如a频道下线了就是a用户下线了
兄弟 应该是刚使用webman呀,有新人来用good
插眼