/// <summary> /// 客户端的UserClient OnlineState处理事件,将该事件转发给其他客户端 /// </summary> /// <param name="se"></param> private void UserOnlineStateChanged(ClientTokenOnlineStateChangedEvent se) { var token = se.User as ClientToken; //排除与该服务对象连接的客户端,防止客户端已断开 var servicePushList = from p in ServerPushList where p != _pushService select p; foreach (var push in servicePushList) { push.ServerPushUserOnlineStateChanged(token); } }
public void UpdateTokenOnlineState(ClientToken token) { var client = DefaultClientList.Find(token); if (client != null)//若找到,则拷贝远端属性后发出事件通知 { ClientToken.PropertyCopy(token, client); var even = new ClientTokenOnlineStateChangedEvent() { User = client }; UserOnlineStateChanged(even); _pubsub.Publish(even); } }