private void SendTo(int connID, short msgType, MessageBase msg, int channel = 0) { NetworkWriter netWriter = new NetworkWriter(); netWriter.StartMessage(msgType); msg.Serialize(netWriter); netWriter.FinishMessage(); netServer.SendWriterTo(connID, netWriter, channel); }
void ServerSendMsgToClients(string msgStr) { System.Collections.ObjectModel.ReadOnlyCollection <NetworkConnection> connections = msgServer.connections; foreach (NetworkConnection client in connections) { if (client != null) { NetworkWriter writer = new NetworkWriter(); writer.StartMessage(MessageID); writer.Write(msgStr); writer.FinishMessage(); Debug.Log("sending: " + msgStr); msgServer.SendWriterTo(client.connectionId, writer, 0); } } }
public void SendCommand(string cmd, bool useReliable = true) { //Debug.Log("Sending: '" + cmd + "'"); if (isServer) { System.Collections.ObjectModel.ReadOnlyCollection <NetworkConnection> connections = server.connections; for (int i = 0; i < connections.Count; i++) { if (connections[i] != null) { NetworkWriter writer = new NetworkWriter(); writer.StartMessage(TerminalMsgID); writer.Write(FormatCmdStr(cmd)); writer.FinishMessage(); server.SendWriterTo(connections[i].connectionId, writer, useReliable ? reliableChannelId : unreliableChannelId); } } } else { if (client.connection != null) { NetworkWriter writer = new NetworkWriter(); writer.StartMessage(TerminalMsgID); writer.Write(FormatCmdStr(cmd)); writer.FinishMessage(); if (client.SendWriter(writer, useReliable ? reliableChannelId : unreliableChannelId) == false) { PrintUI("Failed to send message. Disconnected from server. Reconnecting..."); ConnectToServer(); // TODO: Create unsent message queue the resend on connection? } } } }