public static void Handle(byte[] payloadBytes, ConnectionInfo connectionInfo) { var payloadString = Encoding.UTF8.GetString(payloadBytes); try { payloadString = payloadString.Substring(payloadString.IndexOf('{')); } catch { } Payload payload = JsonConvert.DeserializeObject<Payload>(payloadString); if(payload != null) { if (payload.type == "subscriber") { connectionInfo.Topic = payload.topic; ConnectionsStorage.Add(connectionInfo); } else { PayloadStorage.Add(payload); } } }
public static void Handle(byte[] payloadBytes, ConnectionInfo connectionInfo) { var payloadString = Encoding.UTF8.GetString(payloadBytes); if (payloadString.StartsWith("subscribe#")) { connectionInfo.Topic = payloadString.Split("subscribe#").LastOrDefault(); ConnectionsStorage.Add(connectionInfo); } else { Payload payload = JsonConvert.DeserializeObject <Payload>(payloadString); PayloadStorage.Add(payload); } }