Exemplo n.º 1
0
        protected async void StreamRead()
        {
            while (theSocket.State == WebSocketState.Open)
            {
                var res = await theSocket.ReceiveAsync(new ArraySegment <byte>(DataBuffer), System.Threading.CancellationToken.None);

                if (res.MessageType == WebSocketMessageType.Close)
                {
                    await theSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "You told me to close", System.Threading.CancellationToken.None);

                    StreamStatusEvent?.Invoke("Disconnected");
                    break;
                }
                else
                {
                    if (!ProcessDataBuffer(res.Count))
                    {
                        await theSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Something happened on my end", System.Threading.CancellationToken.None);

                        StreamStatusEvent?.Invoke("Disconnected");
                        break;
                    }
                }
            }
        }
Exemplo n.º 2
0
        void OnStreamStatus(StreamStatusEvent status)
        {
            var evt = status.Online ? StreamOnline : StreamOffline;

            if (evt != null)
            {
                evt(this);
            }
        }
Exemplo n.º 3
0
        protected void StreamRead(IAsyncResult ar)
        {
            try
            {
                int offset     = 0;
                int prevoffset = offset;

                int bytes = theStream.EndRead(ar);
                if (ProcessDataBuffer(bytes))
                {
                    theStream.BeginRead(DataBuffer, DataReadOffset, BUFFER_SIZE - DataReadOffset, StreamRead, this);
                }
                else
                {
                    StreamStatusEvent?.Invoke("Disconnected");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                StreamStatusEvent?.Invoke("Disconnected");
            }
        }