diff --git a/source/connection/connection.d b/source/connection/connection.d index df760b4..dc1e90c 100644 --- a/source/connection/connection.d +++ b/source/connection/connection.d @@ -99,9 +99,7 @@ public final class BesterConnection : Thread try { /* Receive a message */ - byte[] receivedBytes; - receiveMessage(clientConnection, receivedBytes); - receivedMessage = parseJSON(cast(string)receivedBytes); + receiveMessage(clientConnection, receivedMessage); /** * If the message was received successfully then @@ -220,7 +218,7 @@ public final class BesterConnection : Thread try { /* Send the message */ - sendMessage(clientConnection, cast(byte[])toJSON(dummyMessage)); + sendMessage(clientConnection, dummyMessage); } catch(NetworkException e) { @@ -348,7 +346,7 @@ public final class BesterConnection : Thread try { /* Send the message */ - sendMessage(clientConnection, cast(byte[])toJSON(statusMessage)); + sendMessage(clientConnection, statusMessage); } catch(NetworkException e) { diff --git a/source/handlers/response.d b/source/handlers/response.d index 1a263e8..d44d438 100644 --- a/source/handlers/response.d +++ b/source/handlers/response.d @@ -211,7 +211,7 @@ public final class HandlerResponse /* Send the message to the client */ debugPrint("Sending handler's response to client \"" ~ clientConnection.toString() ~ "\"..."); - sendMessage(clientSocket, cast(byte[])toJSON(clientPayload)); + sendMessage(clientSocket, clientPayload); debugPrint("Sending handler's response to client \"" ~ clientConnection.toString() ~ "\"... [sent]"); } catch(SocketOSException exception) @@ -284,7 +284,7 @@ public final class HandlerResponse /* Send the payload */ debugPrint("Sending handler's response to server \"" ~ serverConnection.toString() ~ "\"..."); - sendMessage(serverConnection, cast(byte[])toJSON(serverPayload)); + sendMessage(serverConnection, serverPayload); debugPrint("Sending handler's response to server \"" ~ serverConnection.toString() ~ "\"... [sent]"); /* Close the connection to the server */ diff --git a/source/utils/message.d b/source/utils/message.d index b3727f9..6e89ab1 100644 --- a/source/utils/message.d +++ b/source/utils/message.d @@ -14,10 +14,15 @@ import bmessage : bformatreceiveMessage = receiveMessage, bformatsendMessage = s */ public void receiveMessage(Socket originator, ref JSONValue receiveMessage) { - if(!bformatreceiveMessage(originator, receiveMessage)) + /* The received bytes */ + byte[] receivedBytes; + + if(!bformatreceiveMessage(originator, receivedBytes)) { throw new NetworkException(originator); } + + receiveMessage = parseJSON(cast(string)receivedBytes); } /** @@ -31,7 +36,7 @@ public void receiveMessage(Socket originator, ref JSONValue receiveMessage) */ public void sendMessage(Socket recipient, JSONValue jsonMessage) { - if(!bformatsendMessage(recipient, jsonMessage)) + if(!bformatsendMessage(recipient, cast(byte[])toJSON(jsonMessage))) { throw new NetworkException(recipient); }