Пример #1
0
 static void socketServer_NewSessionConnected(JsonWebSocketSession session)
 {
     session.Send("Welcome to SuperSocket Telnet Server");
     //SendResponse("{\"employees\": [{ \"firstName\":\"Bill\" , \"lastName\":\"Gates\" },{ \"firstName\":\"George\" , \"lastName\":\"Bush\" },{ \"firstName\":\"Thomas\" , \"lastName\":\"Carter\" }]}");
     //JSON.stringify(Grade);
     //session.SendJsonMessage("test", Grade);
     session.SendJsonMessage("", Grade);
 }
Пример #2
0
 /// <summary>
 /// 调用远程端实现的服务方法
 /// </summary>
 /// <param name="api">api</param>
 /// <param name="parameters">参数列表</param>
 /// <returns></returns>
 public static bool TryInvokeApi(this JsonWebSocketSession 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(JsonWebSocketSession session)
        {
            var name = (string)session.TagBag.Name;
            if (name == null)
            {
                return;
            }

            var members = this.AllSessions
               .Select(item => (string)item.TagBag.Name)
               .Where(item => item != null)
               .ToArray();

            // 推送成员下线通知
            foreach (var item in this.AllSessions)
            {
                item.TryInvokeApi("OnMemberChange", 0, name, members);
            }
        }
        /// <summary>
        /// 连接断开
        /// </summary>
        /// <param name="session"></param>
        protected override void OnDisconnect(JsonWebSocketSession session)
        {
            var name = (string)session.TagBag.Name;

            if (name == null)
            {
                return;
            }

            var members = this.AllSessions
                          .Select(item => (string)item.TagBag.Name)
                          .Where(item => item != null)
                          .ToArray();

            // 推送成员下线通知
            foreach (var item in this.AllSessions)
            {
                item.TryInvokeApi("OnMemberChange", 0, name, members);
            }
        }
Пример #5
0
 /// <summary>
 /// 请求上下文
 /// </summary>
 /// <param name="session">当前会话对象</param>
 /// <param name="packet">数据包对象</param>
 /// <param name="allSessions">所有会话对象</param>
 internal RequestContext(JsonWebSocketSession session, JsonPacket packet, IEnumerable<JsonWebSocketSession> allSessions)
 {
     this.Session = session;
     this.Packet = packet;
     this.AllSessions = allSessions;
 }
Пример #6
0
 /// <summary>
 /// 请求上下文
 /// </summary>
 /// <param name="session">当前会话对象</param>
 /// <param name="packet">数据包对象</param>
 /// <param name="allSessions">所有会话对象</param>
 internal RequestContext(JsonWebSocketSession session, JsonPacket packet, ISessionProvider allSessions)
 {
     this.Session = session;
     this.Packet = packet;
     this.AllSessions = allSessions;
 }
Пример #7
0
 static void socketServer_NewSessionConnected(JsonWebSocketSession session)
 {
     session.Send("Welcome to SuperSocket Telnet Server");
     //SendResponse("{\"employees\": [{ \"firstName\":\"Bill\" , \"lastName\":\"Gates\" },{ \"firstName\":\"George\" , \"lastName\":\"Bush\" },{ \"firstName\":\"Thomas\" , \"lastName\":\"Carter\" }]}");
     //JSON.stringify(Grade);
     //session.SendJsonMessage("test", Grade);
     session.SendJsonMessage("", Grade);
 }
 /// <summary>
 /// 设置会话的包装对象
 /// </summary>
 /// <param name="session">会话</param>
 /// <param name="wrapper">包装对象</param>
 protected override void OnSetProtocolWrapper(ISession session, WebSocketSession wrapper)
 {
     var jsonWebSocketSession = new JsonWebSocketSession(this, wrapper);
     session.SetProtocolWrapper("websocket", jsonWebSocketSession);
 }