public Task SendFrameAsync(IWebSocketFrame frame, CancellationToken cancellationToken) { if (frame == null) { throw new ArgumentNullException("frame"); } return(frame.WriteToAsync(_tcp, cancellationToken)); }
public WebSocketPayload(IWebSocketFrame frame, byte[] data = null) { if (frame == null) throw new ArgumentNullException("frame"); _frame = frame; _data = data; if (_data != null) _length = _data.Length; }
public WebSocketPayload(IWebSocketFrame frame, byte[] data, int offset, int length) { if (frame == null) throw new ArgumentNullException("frame"); _frame = frame; _data = data; _offset = offset; _length = length; }
protected virtual void OnFrameReceived(IWebSocketFrame frame) { var handler = this.FrameReceived; if (handler != null) { handler(frame); } }
public WebSocketPayload(IWebSocketFrame frame, byte[] data, int offset, int length) { if (frame == null) { throw new ArgumentNullException("frame"); } _frame = frame; _data = data; _offset = offset; _length = length; }
public WebSocketPayload(IWebSocketFrame frame, byte[] data = null) { if (frame == null) { throw new ArgumentNullException("frame"); } _frame = frame; _data = data; if (_data != null) { _length = _data.Length; } }
public void AddFrame(IWebSocketFrame frame) { if (frame == null) { throw new ArgumentNullException("frame"); } if (this.IsComplete) { throw new InvalidOperationException("Message already complete."); } _frames.Add(frame); }
public Task SendFrameAsync(IWebSocketFrame frame, CancellationToken cancellationToken) { if (frame == null) throw new ArgumentNullException("frame"); return frame.WriteToAsync(_tcp, cancellationToken); }
public Task SendFrameAsync(IWebSocketFrame frame) { return this.SendFrameAsync(frame, CancellationToken.None); }
public Task SendFrameAsync(IWebSocketFrame frame) { return(this.SendFrameAsync(frame, CancellationToken.None)); }
public WebSocketPayload(IWebSocketFrame frame, string data) : this(frame, Encoding.UTF8.GetBytes(data ?? string.Empty)) { }
public WebSocketPayload(IWebSocketFrame frame, string data) : this(frame, Encoding.UTF8.GetBytes(data ?? string.Empty)) { }
private Task SendAsync(IWebSocketFrame frame, CancellationToken cancellationToken) { return(_webSocket.SendFrameAsync(frame, cancellationToken)); }
/// <summary> /// Handles the frame. /// </summary> /// <param name="handler">The handler.</param> private void HandleFrame(IWebSocketDataHandler handler) { IWebSocketFrame frame = _frameReader.Read(_client); if (frame == null || !frame.IsValid) { return; } if (frame.OpCode == WebSocketOpCode.ContinuationFrame) { switch (_multiFrameOpCode) { case WebSocketOpCode.TextFrame: string message = Encoding.UTF8.GetString(frame.DecodedPayload, 0, frame.DecodedPayload.Length); handler.OnTextPart(this, new TextMultiFrameEventArgs(message, frame.IsEntirePayload)); return; case WebSocketOpCode.BinaryFrame: handler.OnBinaryPart(this, new BinaryMultiFrameEventArgs(frame.DecodedPayload, frame.IsEntirePayload)); return; } } else { switch (frame.OpCode) { case WebSocketOpCode.ConnectionClose: handler.OnClose(this, GetConnectionCloseEventArgsFromPayload(frame.DecodedPayload)); KillConnection(string.Empty); return; case WebSocketOpCode.Ping: handler.OnPing(this, new PingEventArgs(frame.DecodedPayload)); return; case WebSocketOpCode.Pong: handler.OnPong(this, new PingEventArgs(frame.DecodedPayload)); return; case WebSocketOpCode.TextFrame: string message = Encoding.UTF8.GetString(frame.DecodedPayload, 0, frame.DecodedPayload.Length); if (frame.IsEntirePayload) { handler.OnText(this, new TextFrameEventArgs(message)); } else { _multiFrameOpCode = frame.OpCode; handler.OnTextPart(this, new TextMultiFrameEventArgs(message, frame.IsEntirePayload)); } return; case WebSocketOpCode.BinaryFrame: if (frame.IsEntirePayload) { handler.OnBinary(this, new BinaryFrameEventArgs(frame.DecodedPayload)); } else { _multiFrameOpCode = frame.OpCode; handler.OnBinaryPart(this, new BinaryMultiFrameEventArgs(frame.DecodedPayload, frame.IsEntirePayload)); } return; } } }