RPCServerSocketConnection.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using Fleck;
  2. using InABox.Core;
  3. namespace InABox.Rpc
  4. {
  5. /*public class RpcServerSocketConnection: WebSocketBehavior
  6. {
  7. public RpcServerSocketTransport? Transport { get; set; }
  8. protected override void OnOpen()
  9. {
  10. base.OnOpen();
  11. Transport?.ConnectionOpened(this);
  12. }
  13. protected override void OnClose(CloseEventArgs e)
  14. {
  15. base.OnClose(e);
  16. Transport?.ConnectionClosed(this,e);
  17. }
  18. protected override void OnError(ErrorEventArgs e)
  19. {
  20. base.OnError(e);
  21. Transport?.ConnectionException(this, e.Exception);
  22. }
  23. protected override void OnMessage(MessageEventArgs e)
  24. {
  25. base.OnMessage(e);
  26. Task.Run(() =>
  27. {
  28. RpcMessage? request = null;
  29. if (e.IsBinary && (e.RawData != null))
  30. request = Serialization.ReadBinary<RpcMessage>(e.RawData, BinarySerializationSettings.Latest);
  31. else if (e.IsText && !String.IsNullOrWhiteSpace(e.Data))
  32. request = Serialization.Deserialize<RpcMessage>(e.Data);
  33. RpcMessage? response = Transport?.DoMessage(this, request);
  34. if (response != null)
  35. {
  36. if (e.IsBinary)
  37. Send(Serialization.WriteBinary(response, BinarySerializationSettings.Latest));
  38. else
  39. {
  40. Send(Serialization.Serialize(response));
  41. }
  42. }
  43. });
  44. }
  45. public void Send(RpcMessage message)
  46. {
  47. Send(Serialization.WriteBinary(message, BinarySerializationSettings.Latest));
  48. }
  49. }*/
  50. public class RpcServerSocketConnection2
  51. {
  52. public IWebSocketConnection Connection { get; set; }
  53. public RpcServerSocketConnection2(IWebSocketConnection connection)
  54. {
  55. Connection = connection;
  56. }
  57. }
  58. }