/// <summary> /// Reads data from the NetworkStream. /// </summary> /// <param name="buffer"></param> /// <param name="offset"></param> /// <param name="count"></param> /// <returns></returns> public override int Read(byte[] buffer, int offset, int count) { #if WINDOWS_UWP || WINDOWS_APP || WINDOWS_PHONE_APP || WINDOWS_PHONE_81 return(_inputStream.Read(buffer, offset, count)); #elif __ANDROID__ return(_socket.InputStream.Read(buffer, offset, count)); #elif UNITY return(_socket.Receive(buffer, count, 0)); #else return(0); #endif }
private void OnStreamReady(object sender, NetMQSocketEventArgs e) { byte[] identity = m_stream.Receive(); WebSocketClient client; if (!m_clients.TryGetValue(identity, out client)) { client = new WebSocketClient(m_stream, identity); client.IncomingMessage += OnIncomingMessage; m_clients.Add(identity, client); OnNewClient(identity); } client.OnDataReady(); if (client.State == WebSocketClientState.Closed) { m_clients.Remove(identity); client.IncomingMessage -= OnIncomingMessage; OnClientRemoved(identity); } }