public StreamDisconnect(DisconnectCode code, string streamName, string reason, string timestampMs) : base(timestampMs) { Code = code; StreamName = streamName; Reason = reason; }
public void Close(DisconnectCode code = DisconnectCode.Normal, string reason = null) { int response = Close(instanceId, (int)code, reason); if (response < 0) { throw ErrorParser.GetWebSocketExceptionFromErrorCode(response, null); } }
public void Close(ulong id, DisconnectCode code = DisconnectCode.Normal, string reason = null) { if (!isStarted) { throw new InvalidOperationException("Socket not started"); } WebSocketServerConnectionBehaviour.Close(id, code, reason); }
internal static void Close(ulong id, DisconnectCode code = DisconnectCode.Normal, string reason = null) { lock (connectionLock) { if (connectedClients.ContainsKey(id)) { connectedClients[id].Close((ushort)code, reason); } } }
internal NativeWebSocketClient(string url) { try { websocket = new WebSocketSharp.WebSocket(url); websocket.OnOpen += (sender, ev) => { if (OnOpenEvent != null) { OnOpenEvent(); } }; websocket.OnMessage += (sender, ev) => { if (ev.RawData != null && OnPayloadEvent != null) { OnPayloadEvent(new ArraySegment <byte>(ev.RawData, 0, ev.RawData.Length)); } }; // Bind OnError event websocket.OnError += (sender, ev) => { if (OnErrorEvent != null) { OnErrorEvent(ev.Message); } }; // Bind OnClose event this.websocket.OnClose += (sender, ev) => { if (OnCloseEvent != null) { DisconnectCode code = (DisconnectCode)(int)ev.Code; if (!Enum.IsDefined(typeof(DisconnectCode), code)) { code = DisconnectCode.Unknown; } OnCloseEvent(code); } }; } catch (Exception e) { throw new WebSocketException("Failed to create socket", e); } }
internal static void DelegateOnCloseEvent(int instanceId, int disconnectCode) { if (sockets.ContainsKey(instanceId)) { DisconnectCode code = (DisconnectCode)disconnectCode; if (!Enum.IsDefined(typeof(DisconnectCode), code)) { code = DisconnectCode.Unknown; } sockets[instanceId].OnClose(code); } }
public void Close(DisconnectCode code = DisconnectCode.Normal, string reason = null) { if (websocket.ReadyState == WebSocketSharp.WebSocketState.Closing) { throw new InvalidOperationException("Socket is already closing"); } if (this.websocket.ReadyState == WebSocketSharp.WebSocketState.Closed) { throw new InvalidOperationException("Socket is already closed"); } try { websocket.CloseAsync((ushort)code, reason); } catch (Exception e) { throw new WebSocketException("Could not close socket", e); } }