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);
     }
 }
예제 #2
0
        protected override Task SendAsync(WampMessage <object> message)
        {
            var task = new Task(() =>
            {
                var msg = new NetMQMessage();
                if (_socket is RouterSocket)
                {
                    msg.Append(new byte[0]);
                    msg.AppendEmptyFrame();
                }

                var bytes = _binding.Format(message);
                msg.Append(bytes);
                _socket.SendMultipartMessage(msg);
            });

            task.Start(_scheduler);
            return(task);
        }
예제 #3
0
        protected override async Task SendAsync(WampMessage <object> message)
        {
            try
            {
                Stream stream = mWebSocket.OutputStream.AsStreamForWrite();

                byte[] frame = mBinaryBinding.Format(message);

                await stream.WriteAsync(frame, 0, frame.Length).ConfigureAwait(false);

                await stream.FlushAsync().ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                RaiseConnectionError(ex);

                if (mWebSocket != null)
                {
                    mWebSocket.Dispose();
                }

                throw;
            }
        }
예제 #4
0
 public byte[] Format(WampMessage <object> message)
 {
     return(mBinding.Format(message));
 }
        public override void Send(WampMessage <object> message)
        {
            byte[] bytes = mBinding.Format(message);

            WebSocket.Send(bytes, 0, bytes.Length);
        }
 protected override ArraySegment <byte> GetMessageInBytes(WampMessage <object> message)
 {
     byte[] bytes = mBinding.Format(message);
     return(new ArraySegment <byte>(bytes));
 }
예제 #7
0
        protected override Task SendAsync(WampMessage <object> message)
        {
            byte[] bytes = mBinding.Format(message);

            return(mWebSocketConnection.Send(bytes));
        }