public void HandleEvent(object sender, MulticastMessageEventArgs args) { if ((this.HandleMessage != null) && (args != null)) { string jsonString = args.JsonString; if (!string.IsNullOrEmpty(jsonString)) { using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString))) { try { JsonRpcResponse response = (JsonRpcResponse)this.deserializer.ReadObject(ms); JsonRpcResponseEventArgs responseArgs = new JsonRpcResponseEventArgs(); responseArgs.Response = response; this.HandleMessage(this, responseArgs); } catch (SerializationException) { return; } } } } }
public void HandleEvent(object sender, MulticastMessageEventArgs args) { if ((this.HandleMessage != null) && (args != null)) { string jsonString = args.JsonString; NetworkInterface incomingIF = args.IncomingInterface; if (!string.IsNullOrEmpty(jsonString)) { Announce announce = this.cache.Get(jsonString); if (announce == null) { using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString))) { try { announce = (Announce)this.deserializer.ReadObject(ms); if (MandatoryKeysPresent(announce)) { announce.JsonString = jsonString; announce.IdentifyCommunicationPath(incomingIF); this.cache.Add(jsonString, announce); this.eventArgs.Announce = announce; this.HandleMessage(this, this.eventArgs); } } catch (SerializationException) { return; } } } else { this.eventArgs.Announce = announce; this.HandleMessage(this, this.eventArgs); } } } }
public void SendMessage(string json) { using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json))) { switch (this.response) { default: case ResponseType.responseSuccess: { ConfigurationRequest request = (ConfigurationRequest)this.deserializer.ReadObject(ms); string responseString = "{\"jsonrpc\":\"2.0\",\"id\":\"" + request.QueryId + "\",\"result\":true}"; MulticastMessageEventArgs args = new MulticastMessageEventArgs(); args.JsonString = responseString; this.parser.HandleEvent(null, args); } break; case ResponseType.noResponse: break; case ResponseType.responseError: { ConfigurationRequest request = (ConfigurationRequest)this.deserializer.ReadObject(ms); string responseString = "{\"jsonrpc\":\"2.0\",\"id\":\"" + request.QueryId + "\",\"error\":{\"code\": -32602, \"data\": \"error\", \"message\": \"Invalid method parameters\"}}"; MulticastMessageEventArgs args = new MulticastMessageEventArgs(); args.JsonString = responseString; this.parser.HandleEvent(null, args); } break; case ResponseType.responseNoQueryId: { ConfigurationRequest request = (ConfigurationRequest)this.deserializer.ReadObject(ms); string responseString = "{\"jsonrpc\":\"2.0\",\"error\":{\"code\": -32602, \"message\": \"Invalid method parameters\"}}"; MulticastMessageEventArgs args = new MulticastMessageEventArgs(); args.JsonString = responseString; this.parser.HandleEvent(null, args); } break; case ResponseType.responseNoErrorNoResult: { ConfigurationRequest request = (ConfigurationRequest)this.deserializer.ReadObject(ms); string responseString = "{\"jsonrpc\":\"2.0\",\"id\":\"" + request.QueryId + "\"}"; MulticastMessageEventArgs args = new MulticastMessageEventArgs(); args.JsonString = responseString; this.parser.HandleEvent(null, args); } break; case ResponseType.responseIllegalJson: { ConfigurationRequest request = (ConfigurationRequest)this.deserializer.ReadObject(ms); MulticastMessageEventArgs args = new MulticastMessageEventArgs(); args.JsonString = @"{""jsonrpc""2.0"",""id"":""" + request.QueryId + @"""}"; this.parser.HandleEvent(null, args); } break; case ResponseType.responseEmptyJson: { ConfigurationRequest request = (ConfigurationRequest)this.deserializer.ReadObject(ms); MulticastMessageEventArgs args = new MulticastMessageEventArgs(); args.JsonString = null; this.parser.HandleEvent(null, args); } break; } } }