NotifyResponse.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using InABox.Clients;
  2. using InABox.Core;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace InABox.WebSocket.Shared
  9. {
  10. public class PushRequest : Request, ISerializeBinary
  11. {
  12. public override RequestMethod GetMethod() => RequestMethod.Push;
  13. }
  14. public class PushResponse : Response, ISerializeBinary
  15. {
  16. public int? SocketPort { get; set; }
  17. public override void SerializeBinary(CoreBinaryWriter writer)
  18. {
  19. base.SerializeBinary(writer);
  20. if(SocketPort != null)
  21. {
  22. writer.Write(true);
  23. writer.Write(SocketPort.Value);
  24. }
  25. else
  26. {
  27. writer.Write(false);
  28. }
  29. }
  30. public override void DeserializeBinary(CoreBinaryReader reader)
  31. {
  32. base.DeserializeBinary(reader);
  33. if(reader.ReadBoolean())
  34. {
  35. SocketPort = reader.ReadInt32();
  36. }
  37. else
  38. {
  39. SocketPort = null;
  40. }
  41. }
  42. }
  43. }