public override void Awake() { base.Awake(); // Get the synchronisation manager from the same component. m_SynchronisationManager = GetComponent <SynchronisationManager>(); GlobalConfig gc = new GlobalConfig(); gc.ReactorModel = ReactorModel.FixRateReactor; gc.ThreadAwakeTimeout = 10; NetworkTransport.Init(gc); m_Buffer = new ByteArray(Network.NetworkConst.MAX_PACKET_LEN); ConnectionConfig config = new ConnectionConfig(); m_ReliableChannelID = config.AddChannel(QosType.Reliable); HostTopology topo = new HostTopology(config, 10); m_SocketID = NetworkTransport.AddHost(topo, 8888); Debug.Log("Host established " + m_SocketID); }
public override void Start(object startObject = null) { base.Start(startObject); SynchronisationManager.Instance().SetPeerID(1); m_NetworkManager = NetworkManager.Instance(); m_NetworkManager.RegisterForConnectionEvent(OnConnectionEvent); m_NetworkManager.ConnectToAddress(m_GameAddress); }
public override void Update() { base.Update(); int recHostID; int recConnectionID; int recChannelId; int bufferSize = Network.NetworkConst.MAX_PACKET_LEN; int dataSize; byte error; NetworkEventType networkEvent; do { m_Buffer.Reset(); networkEvent = NetworkTransport.Receive(out recHostID, out recConnectionID, out recChannelId, m_Buffer.BufferArray, bufferSize, out dataSize, out error); if (m_OnConnectionEvent != null && networkEvent != NetworkEventType.Nothing) { m_OnConnectionEvent(networkEvent, recHostID, recConnectionID); } switch (networkEvent) { case NetworkEventType.ConnectEvent: Debug.Log("<color=blue>Connection Established</color>"); OnConnectEvent(recHostID, recConnectionID, recChannelId); break; case NetworkEventType.DisconnectEvent: Debug.Log("<color=red>Disconnect Event</color>"); break; case NetworkEventType.DataEvent: //Debug.Log( "<color=blue>Data Received</color>" ); m_Buffer.ReadHead(); switch ((PacketHeader)m_Buffer.PacketId) { case PacketHeader.Test: Debug.Log("<color=red> Test message '" + m_Buffer.ReadString() + "'</color>"); break; case PacketHeader.Echo: Debug.Log("<color=red> Echo " + m_Buffer.ReadString() + "</color>"); break; case PacketHeader.SynchroniserMessage: SynchronisationManager.Instance().ReceiveSerialisation(m_Buffer); break; default: throw new System.Exception("UNIMPLEMENTED NETWORK HEADER"); } break; case NetworkEventType.BroadcastEvent: Debug.Log("<color=blue>Broadcast Event</color>"); break; case NetworkEventType.Nothing: // Nothing to do. break; default: Debug.LogError("Unknown message type" + networkEvent.ToString()); break; } } while(networkEvent != NetworkEventType.Nothing); }