/// <summary> /// Sends an event with a network object to all clients. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="ev"></param> /// <param name="obj"></param> /// <param name="method">Unreliable by default.</param> public void SendEventToAllClients <T>(NetworkEvents.Event ev, T obj, NetDeliveryMethod method = NetDeliveryMethod.Unreliable) { var msg = server.CreateMessage(); var bytes = ev.Serialize(obj); msg.Write(bytes); server.SendToAll(msg, method); }
/// <summary> /// Sends an event with a network object to clients. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="clientConnections"></param> /// <param name="ev"></param> /// <param name="obj"></param> /// <param name="method">Unreliable by default.</param> public void SendEventToClient <T>(IList <NetConnection> clientConnections, NetworkEvents.Event ev, T obj, NetDeliveryMethod method = NetDeliveryMethod.Unreliable) { var msg = server.CreateMessage(); var bytes = ev.Serialize(obj); msg.Write(bytes); server.SendMessage(msg, clientConnections, method, 0); }
//Save a step when handling network events. /// <summary> /// Add callback for a message received /// </summary> /// <param name="recipient">event Received by Client or Server?</param> /// <param name="e"></param> /// <param name="callback"></param> public void AddIncomingEventHandler(PeerType recipient, NetworkEvents.Event e, IncomingMessageDelegate callback) { switch (recipient) { case PeerType.Server: OnClientMessageReceived += (s, message) => { message.RunEvent(e, PeerType.Client, callback); }; break; case PeerType.Client: OnServerMessageReceived += (s, message) => { message.RunEvent(e, PeerType.Server, callback); }; break; } }