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()); }
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()); }
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()); }
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"); } }