Beispiel #1
0
    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);
    }
Beispiel #2
0
    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?
                }
            }
        }
    }