private async Task SendRawAsync(RawSendType type, ArraySegment <byte> buffer, CancellationToken cancellationToken) { if (_state != State.Open) { throw new InvalidOperationException("Cannot send on closed receiver"); } if (buffer.Count == 0) { return; } try { if (_type == ReceiverType.XhrPolling) { _context.Response.ContentLength = buffer.Count; } await _context.Response.Body.WriteAsync(buffer.Array, buffer.Offset, buffer.Count, cancellationToken); await _context.Response.Body.FlushAsync(cancellationToken); if (type != RawSendType.Header) { _bytesSent += buffer.Count; } if ((_type == ReceiverType.XhrPolling) || (type == RawSendType.Close) || (_bytesSent >= _maxResponseLength)) { _state = State.Closed; } } catch { _state = State.Closed; throw; } }
private async Task SendRawAsync(RawSendType type, ArraySegment<byte> buffer, CancellationToken cancellationToken) { if (_state != State.Open) { throw new InvalidOperationException("Cannot send on closed receiver"); } if (buffer.Count == 0) { return; } try { if (_type == ReceiverType.XhrPolling) { _context.Response.ContentLength = buffer.Count; } await _context.Response.Body.WriteAsync(buffer.Array, buffer.Offset, buffer.Count, cancellationToken); await _context.Response.Body.FlushAsync(cancellationToken); if (type != RawSendType.Header) { _bytesSent += buffer.Count; } if ((_type == ReceiverType.XhrPolling) || (type == RawSendType.Close) || (_bytesSent >= _maxResponseLength)) { _state = State.Closed; } } catch { _state = State.Closed; throw; } }
private Task SendRawAsync(RawSendType type, byte[] buffer, CancellationToken cancellationToken) { return(SendRawAsync(type, new ArraySegment <byte>(buffer), cancellationToken)); }
private Task SendRawAsync(RawSendType type, byte[] buffer, CancellationToken cancellationToken) { return SendRawAsync(type, new ArraySegment<byte>(buffer), cancellationToken); }