public static bool IsClientConnected(WebSocketUser client) { try { return(!(client.Socket.Poll(1, SelectMode.SelectRead) && client.Socket.Available == 0)); } catch (Exception) { return(false); } }
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; }
public ConnectEventArgs(WebSocketUser user) { User = user; }
public RttEventArgs(WebSocketUser user) { User = user; }
public HandshakeEventArgs(WebSocketUser user, string header) { User = user; Header = header; }