/// <summary> /// Sends the outgoing message to the remote endpoint. /// </summary> /// <param name="message">An instance of the outgoing message.</param> public void Send(NetworkOutgoingMessage message) { if (listener.IsAvailable(identifier)) { listener.Schedule(new NetworkPoolSend(identifier, outgoing, message)); } else { message.Release(); } }
public void Send(NetworkOutgoingMessage message, Action callback) { if (listener.IsAvailable(identifier)) { DataBlock block = new NetworkOutgoingBlock(memory.Data, offset, message.Length); SocketBuffer buffer = new SocketBuffer(memory.Data, offset, message.Length); message.ToBytes(block); encryptor?.Encrypt(memory.Data, offset, message.Length); offset += message.Length; parts.Add(offset); socket.Send(buffer, OnSent(callback)); } }
public HandshakeConnectionEncryptedMessage(NetworkOutgoingMessage inner, HandshakeKey key) { this.inner = inner; this.key = key; }
public NetworkPoolSend(long identifier, NetworkOutgoingBuffer buffer, NetworkOutgoingMessage message) { this.identifier = identifier; this.buffer = buffer; this.message = message; }
public void Send(NetworkOutgoingMessage message, HandshakeKey key) { connection.Send(new HandshakeConnectionEncryptedMessage(message, key)); }
public void Send(NetworkOutgoingMessage message) { connection.Send(message); }