环境是用的gateway和client,当客户端下线后,虽然gateway知道了,但是网站不知道,客户端也不知道,是不是应该在gateway上OnClose发送一个http请求到网站,然后网站再用client去推送离线通知?有没有更好的方法呢?
我发现用我所说的方法行不通,gateway提交下线通知只能通过clientid,但是通知到网站后端后,Gateway::getUidByClientId(CLIENTID); 方法已经行不通了,因为已经被剔除了。 肯定是我姿势不对,请大佬们指点
1、不要动Gateway的onClose回调,这等于是给自己挖没必要的坑,Events::onClose()回调里调用手册里对应的API就可以了; 2、Events::onClose()回调里不能直接使用Gateway::getUidByClientId()接口,需要配合也就是一般客户端连接上来后先Gateway::bindUid()一下,同时将uid存入session,最后需要的时候从session取出uid再操作Gateway::sendToUid()等API即可;
感谢大佬回复,已理解
我发现用我所说的方法行不通,gateway提交下线通知只能通过clientid,但是通知到网站后端后,Gateway::getUidByClientId(CLIENTID); 方法已经行不通了,因为已经被剔除了。
肯定是我姿势不对,请大佬们指点
1、不要动Gateway的onClose回调,这等于是给自己挖没必要的坑,Events::onClose()回调里调用手册里对应的API就可以了;
2、Events::onClose()回调里不能直接使用Gateway::getUidByClientId()接口,需要配合也就是一般客户端连接上来后先Gateway::bindUid()一下,同时将uid存入session,最后需要的时候从session取出uid再操作Gateway::sendToUid()等API即可;
感谢大佬回复,已理解