/// <summary> /// 调用远程端实现的服务方法 /// </summary> /// <param name="api">api</param> /// <param name="parameters">参数列表</param> /// <returns></returns> public static bool TryInvokeApi(this FastWebSocketSession session, string api, params object[] parameters) { try { session.InvokeApi(api, parameters); return(true); } catch (Exception) { return(false); } }
/// <summary> /// 连接断开 /// </summary> /// <param name="session"></param> protected override void OnDisconnect(FastWebSocketSession session) { var name = (string)session.TagBag.Name; if (name == null) { return; } // 推送成员下线通知 foreach (var item in this.AllSessions) { item.TryInvokeApi("OnMemberChange", 0, name); } }
/// <summary> /// 断开连接 /// </summary> /// <param name="session"></param> protected override void OnDisconnect(FastWebSocketSession session) { Console.Title = "FastWebSocketServer 连接数:" + this.AllSessions.Count(); }
/// <summary> /// 请求上下文 /// </summary> /// <param name="session">当前会话对象</param> /// <param name="packet">数据包对象</param> /// <param name="allSessions">所有会话对象</param> internal RequestContext(FastWebSocketSession session, FastPacket packet, IEnumerable<FastWebSocketSession> allSessions) { this.Session = session; this.Packet = packet; this.AllSessions = allSessions; }