public void addMessageType(Message msg) { if (messages.ContainsKey(msg.getType())) { throw new Exception("duplicate message type: " + msg.getType()); } else { messages[msg.getType()] = msg; } }
public void Send(Message message) { try { Octets oc = new Octets(); oc.push(message.getType()); oc.push(0); // message size, push later int oldSize = oc.Size; oc.push(message); int size = oc.Size - oldSize; oc.push_rollback(size + 4); oc.push(size); // message size, push now oc.push_count(size); socket.BeginSend(oc.getBytes(), 0, oc.Size, SocketFlags.None, new AsyncCallback(OnSendResult), null); } catch (Exception e) { UnityEngine.Debug.LogError(e); Close(); } }