private void Start() { pongHandler = this.gameObject.AddComponent <PongHandle>(); RegisterHandler(PacketOpcode.SERVER.PONG, pongHandler); foreach (AbstractClientPacketHandle handle in handlers) { if (handle == null) { continue; } RegisterHandler(handle.getOpcode(), handle); } }
private AbstractClientPacketHandle GetHandler(short packetId) { if (packetId > registered.Length) { return(null); } AbstractClientPacketHandle handler = registered[packetId]; if (handler != null) { return(handler); } return(null); }
public void RegisterHandler(PacketOpcode.SERVER code, AbstractClientPacketHandle handler) { if (registered[(short)code] != null) { Debug.Log("handler alread in list."); return; } try { registered[(short)code] = handler; } catch (Exception e) { Debug.LogError("Error registering handler - " + code); Debug.LogError(e.Message); } }
public void DelegateHandler(PacketInStream packet) { lock (objectLock) { short head = packet.readShort(); AbstractClientPacketHandle handler = GetHandler(head); if (!handler.IsActive()) { return; } if (handler.IsNeedDebug()) { packet.printHex("Client"); } handler.DelegatePacket(packet); } }