Пример #1
0
 /// <summary>
 /// 初始化委托
 /// </summary>
 /// <param name="invoke"></param>
 private void InitInvoke(IWebsocket invoke)
 {
     websocketSvr.Start(socket =>
     {
         socket.OnOpen = () =>
         {
             if (!remoteConnections.TryGetValue(socket.ConnectionInfo.Id, out var conn))
             {
                 conn        = new RemoteConnection();
                 conn.socket = socket;
                 remoteConnections.TryAdd(socket.ConnectionInfo.Id, conn);
             }
             invoke.OnOpen(conn);
         };
         socket.OnClose = () =>
         {
             if (remoteConnections.TryRemove(socket.ConnectionInfo.Id, out var conn))
             {
                 invoke.OnClose(conn);
                 conn.tag     = null;
                 conn.message = null;
                 conn.socket  = null;
             }
         };
         socket.OnMessage = message =>
         {
             if (remoteConnections.TryGetValue(socket.ConnectionInfo.Id, out var conn))
             {
                 conn.message = message;
                 invoke.OnMessage(conn);
             }
         };
         socket.OnBinary = buffer =>
         {
             if (remoteConnections.TryGetValue(socket.ConnectionInfo.Id, out var conn))
             {
                 conn.buffer = buffer;
                 invoke.OnBinary(conn);
             }
         };
         socket.OnError = exception =>
         {
             if (remoteConnections.TryGetValue(socket.ConnectionInfo.Id, out var conn))
             {
                 invoke.OnError(conn, exception);
             }
         };
     });
 }