Ejemplo n.º 1
0
        public override void SendMessage(IOutgoingMessage message, DeliveryMethod deliveryMethod)
        {
            if (_delayedMessages != null)
            {
                lock (_delayedMessages)
                {
                    if (_delayedMessages != null)
                    {
                        _delayedMessages.Enqueue(message.ToBytes());
                        return;
                    }
                }
            }

            _session.SendData(message.ToBytes());
        }
Ejemplo n.º 2
0
        public override void SendMessage(IOutgoingMessage message, DeliveryMethod deliveryMethod)
        {
            if (delayedMessages != null)
            {
                lock (delayedMessages)
                {
                    if (delayedMessages != null)
                    {
                        delayedMessages.Enqueue(message.ToBytes());
                        return;
                    }
                }
            }

            socket.Send(message.ToBytes());
        }
Ejemplo n.º 3
0
        public override void SendMessage(IOutgoingMessage message, DeliveryMethod deliveryMethod)
        {
            if (_delayedMessages != null)
            {
                // There's a bug in websockets
                // When server sends a message to client right after client
                // connects to it, the message is lost somewhere.
                // Sending first few messages with a small delay fixes this issue.

                lock (_delayedMessages)
                {
                    if (_delayedMessages != null)
                    {
                        _delayedMessages.Enqueue(message.ToBytes());
                        return;
                    }
                }
            }

            _session.SendData(message.ToBytes());
        }
Ejemplo n.º 4
0
        public override void SendMessage(IOutgoingMessage message, DeliveryMethod deliveryMethod)
        {
            if (serviceForPeer.ConnectionState == WebSocketSharp.WebSocketState.Open)
            {
                //if (_delayedMessages != null)
                //{
                //    lock (_delayedMessages)
                //    {
                //        if (_delayedMessages != null)
                //        {
                //            _delayedMessages.Enqueue(message.ToBytes());
                //            return;
                //        }
                //    }
                //}

                serviceForPeer.SendAsync(message.ToBytes());
            }
            else
            {
                Logs.Error($"Server is trying to send data to peer {Id}, but it is not connected");
            }
        }