public static NetworkMessageBase ReceiveNetworkMsg(this NetMQSocket socket, TimeSpan timeout) { var inMsg = new Msg(); inMsg.InitEmpty(); try { socket.TryReceive(ref inMsg, timeout); } catch (Exception) { return(null); } var str = inMsg.Size > 0 ? Encoding.GetString(inMsg.Data, 0, inMsg.Size) : string.Empty; inMsg.Close(); if (!string.IsNullOrWhiteSpace(str)) { Debug.WriteLine("[R <<<] " + str); } return(NetworkMessageCoding.Decode(str)); }
public static bool SendNetworkMsg(this NetMQSocket socket, NetworkMessageBase message, uint timeoutMilliSeconds = GlobalConstants.StandardSendingTimeout) { var encodedMessage = NetworkMessageCoding.Encode(message); var outMsg = new Msg(); outMsg.InitPool(Encoding.GetByteCount(encodedMessage)); Encoding.GetBytes(encodedMessage, 0, encodedMessage.Length, outMsg.Data, 0); bool sendSuccessful; try { sendSuccessful = socket.TrySend(ref outMsg, TimeSpan.FromMilliseconds(timeoutMilliSeconds), false); Debug.WriteLine("[T >>>] " + encodedMessage); } catch (Exception) { sendSuccessful = false; } outMsg.Close(); return(sendSuccessful); }