根据我们之前的介绍,websocket是HTML5中新增的一个协议, 该协议可以实现服务器与客户端之间全双工通信。 websocket在实时通信领域运用的比较多,比如社交聊天、弹幕、多玩家游戏、协同编辑、股票基金实时报价、体育实况更新、视频会议/聊天、基于位置的应用、在线教育、智能家居等需要高实时的场景。
在这些领域,我们大多需要通过websocket判断用户是否在线,好方便我们进行下一步的操作。
那么websocket如何判断用户是否在线,如何实时获取用户在线列表?
接下来就以GoEasy提供的websocket服务为例为大家讲解一下websocket判断用户是否在线是如何实现的。
一、初始化客户端在线状态
要监听一个的客户端在线状态,必须为该客户端指定userId,否则无法获取客户端在线状态。
var goEasy = new GoEasy({
host:'hangzhou.goeasy.io',//应用所在的区域地址: 【hangzhou.goeasy.io |singapore.goeasy.io】
appkey: "my_appkey",
userId: "用户唯一标识,如 user-001", //必须指定,否则无法实现客户端上下线监听功能
userData: "用户的附加信息,比如性别,年龄" //更多的用户信息,其它已监听上下线信息的用户,收到该用户上线信息里会包含此部分内容
});
二、监听客户端上下线状态变化
客户端上下线有四种actions:
online: 上线,客户端已经订阅了channel,因为网络的原因,