public static bool IsClientConnected(WebSocketUser client)
 {
     try {
         return(!(client.Socket.Poll(1, SelectMode.SelectRead) && client.Socket.Available == 0));
     } catch (Exception) {
         return(false);
     }
 }
Example #2
0
        public async Task Broadcast <T>(string id, T data, WebSocketUser user = null)
        {
            foreach (var keypair in Users)
            {
                if (user != null && keypair.Value.UID == user.UID)
                {
                    continue;
                }

                await keypair.Value.Writer.Send(id, data);
            }
        }
        public async Task <bool> Emit(string uid, string data, WebSocketUser user)
        {
            EventEntryServer entry;

            if (Events.TryGetValue(uid, out entry))
            {
                foreach (var func in entry.Listeners)
                {
                    bool err = false;

                    try {
                        DateTime start = DateTime.Now;
                        object   ob    = JsonConvert.DeserializeObject(data, func.Type);

                        TimeSpan took = DateTime.Now - start;

                        Logger.DebugWrite("INFO", $"JsonWebSocketServer Type {func.Type.Name} took {took.TotalMilliseconds}ms to parse in EventEmitter.");

                        if (ob != null)
                        {
                            await func.Function(ob, user);
                        }
                        else
                        {
                            err = true;
                        }
                    } catch (Exception er) {
                        Logger.DebugWrite("ERROR", "err: ", er);
                        err = true;
                    }

                    if (err)
                    {
                        Logger.DebugWrite("INFO", $"Error parsing type to type of event listener.");
                    }
                }

                return(true);
            }

            return(false);
        }
 public ChatUser(WebSocketUser user)
 {
     Socket = user;
 }
 public MessageEventArgs(WebSocketUser user, WebSocketFrame message)
 {
     User    = user;
     Message = message;
 }
 public DisconnectEventArgs(WebSocketUser user, WebSocketDisconnection reason)
 {
     User   = user;
     Reason = reason;
 }
Example #7
0
 public ConnectEventArgs(WebSocketUser user)
 {
     User = user;
 }
 public RttEventArgs(WebSocketUser user)
 {
     User = user;
 }
 public HandshakeEventArgs(WebSocketUser user, string header)
 {
     User   = user;
     Header = header;
 }