protected override async Task SendAsync(WampMessage <object> message)
 {
     using (WebSocketMessageWriteStream stream =
                mWebsocket.CreateMessageWriter(WebSocketMessageType.Binary))
     {
         byte[] raw = mBinding.Format(message);
         await stream.WriteAsync(raw, 0, raw.Length).ConfigureAwait(false);
     }
 }
        public WebSocketDeflateWriteStream([NotNull] WebSocketMessageWriteStream innerStream)
        {
            if (innerStream == null)
            {
                throw new ArgumentNullException(nameof(innerStream));
            }

            this.innerStream   = innerStream;
            this.deflateStream = new DeflateStream(innerStream, CompressionLevel.Optimal, leaveOpen: true);
        }
Example #3
0
        /// <summary>
        /// Sends a byte array to the client
        /// </summary>
        /// <param name="message">The byte array to send</param>
        /// <returns></returns>
        public async Task SendMessage(byte[] message)
        {
            if (!Socket.IsConnected)
            {
                return;
            }

            using (WebSocketMessageWriteStream messageWriter = Socket.CreateMessageWriter(WebSocketMessageType.Binary))
                await messageWriter.WriteAsync(message, 0, message.Length);
        }
        public WebSocketDeflateWriteStream(WebSocketMessageWriteStream inner)
        {
            if (inner == null)
            {
                throw new ArgumentNullException(nameof(inner));
            }

            _inner   = inner;
            _deflate = new DeflateStream(_inner, CompressionMode.Compress, true);
        }
        public WebSocketMessageWriteStream ExtendWriter(WebSocketMessageWriteStream message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            message.ExtensionFlags.Rsv1 = true;
            return(new WebSocketDeflateWriteStream(message));
        }
        public WebSocketDeflateWriteStream([NotNull] WebSocketMessageWriteStream innerStream)
        {
            if (innerStream == null)
            {
                throw new ArgumentNullException(nameof(innerStream));
            }

            this.innerStream    = innerStream;
            this.bufferManager  = innerStream.Options.BufferManager;
            this.deflaterBuffer = this.bufferManager.TakeBuffer(this.bufferManager.LargeBufferSize);
            this.deflater       = new Deflater(Deflater.DEFAULT_COMPRESSION, noZlibHeaderOrFooter: false);
        }
Example #7
0
        protected override async Task SendAsync(WampMessage <object> message)
        {
            string raw = mBinding.Format(message);

            using (WebSocketMessageWriteStream stream =
                       mWebsocket.CreateMessageWriter(WebSocketMessageType.Text))
            {
                using (StreamWriter streamWriter = new StreamWriter(stream))
                {
                    await streamWriter.WriteAsync(raw)
                    .ConfigureAwait(false);
                }
            }
        }
Example #8
0
        /// <summary>
        /// Sends a message to the client, but only if the client has subscribed to the given channel
        /// </summary>
        /// <param name="message">The message to send</param>
        /// <param name="dataChannel">The data channel that the message belongs to</param>
        /// <returns></returns>
        public async Task SendMessage(string message, string dataChannel)
        {
            if (!Socket.IsConnected)
            {
                return;
            }

            if (!SubscribedChannels.Contains(dataChannel))
            {
                return;
            }

            using (WebSocketMessageWriteStream writer = Socket.CreateMessageWriter(WebSocketMessageType.Text))
            {
                using (StreamWriter sw = new StreamWriter(writer, Encoding.UTF8))
                {
                    await sw.WriteAsync(message);
                }
            }
        }
 public WebSocketMessageWriteStream ExtendWriter(WebSocketMessageWriteStream message)
 {
     message.ExtensionFlags.Rsv1 = true;
     return(new WebSocketDeflateWriteStream(message));
 }
 public WebSocketDeflateWriteStream(WebSocketMessageWriteStream inner)
 {
     _inner = inner;
     _deflate = new DeflateStream(_inner, CompressionMode.Compress, true);
 }
 public WebSocketDeflateWriteStream(WebSocketMessageWriteStream inner)
 {
     _inner   = inner;
     _deflate = new DeflateStream(_inner, CompressionMode.Compress, true);
 }
 public WebSocketMessageWriteStream ExtendWriter(WebSocketMessageWriteStream message)
 {
     message.ExtensionFlags.Rsv1 = true;
     return new WebSocketDeflateWriteStream(message);
 }