Example #1
0
    public void sendMessage(QTMessage message)
    {
        lock (sendLock) {
            try {
                if (client.Connected == false)
                {
                    return;
                }

                byte[] bytes     = QTUtils.MessageToByteArray(message);
                byte[] sizeBytes = BitConverter.GetBytes(bytes.Length);

                try {
                    debugSent(sizeBytes, bytes);

                    thread.stream.Write(sizeBytes, 0, sizeBytes.Length);
                    thread.stream.Write(bytes, 0, bytes.Length);
                } catch (Exception e) {
                    QTDebugger.instance.debugWarning(QTDebugger.debugType.NETWORK, "[" + type + "_base] Error while writing the NetworkStream-");
                    QTDebugger.instance.debugError(QTDebugger.debugType.NETWORK, e);

                    closeConnection();
                }

                var responsableValid = message as QTResponsableMessage;
                if (responsableValid != null)
                {
                    QTResponsableMessage responseMessage = (QTResponsableMessage)message;
                    awaitingResponse.Add(responseMessage.responseID, responseMessage);
                }

                onMessageSent(message);
            } catch (Exception e) {
                Debug.LogWarning(e);
            }
        }
    }