private static void SendTestMessages() { ISocketMessage socketMessage = new JsonSocketMessage(); for (int i = 0; i < 50; i++) { socketMessage.Message = $"Hello from client! Message #{i + 1}"; CommunicationClient.Send(socketMessage); } }
public void ReadCallback(IAsyncResult ar) { StateObject state = (StateObject)ar.AsyncState; Socket = state.WorkSocket; ISocketMessage message = new JsonSocketMessage(); try { int bytesRead = Socket.EndReceive(ar); if (bytesRead > 0) { foreach (var msg in message.Deserialize(state.Buffer)) { switch (msg.MessageType) { case SocketMessageType.Method: MethodRecievedEvent?.Invoke(this, MethodSignatureDto.DeserializeMethodObject(msg.Message)); break; case SocketMessageType.Methods: break; case SocketMessageType.MethodExecution: break; case SocketMessageType.Identity: ClientIdentificationEvent?.Invoke(this, Guid.Parse(msg.Message)); break; case SocketMessageType.Normal: MessageRecievedEvent?.Invoke(this, msg); break; default: throw new ArgumentOutOfRangeException(); } } Socket.BeginReceive(state.Buffer, 0, state.BufferSize, 0, ReadCallback, state); } else { } } catch (SocketException e) { _logger.Warn(e.Message); } }
private static void SendExampleMethodSignature() { Type type = typeof(Program); MethodInfo methodInfo = type.GetMethod("ExampleMethod"); MethodSignatureDto method = MethodSignatureDto.FromMethod(methodInfo); ISocketMessage socketMessage = new JsonSocketMessage(); socketMessage.MessageType = SocketMessageType.Method; socketMessage.Message = MethodSignatureDto.SerializeMethodObject(method); CommunicationClient.Send(socketMessage); }