Exemple #1
0
 public StreamDisconnect(DisconnectCode code, string streamName,
                         string reason, string timestampMs)
     : base(timestampMs)
 {
     Code       = code;
     StreamName = streamName;
     Reason     = reason;
 }
Exemple #2
0
 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);
            }
        }