OpenedParser.cs 679 B

12345678910111213141516171819202122
  1. using EZXR.Glass.Network.SocketIOClient.Arguments;
  2. using System.Threading.Tasks;
  3. namespace EZXR.Glass.Network.SocketIOClient.Parsers
  4. {
  5. class OpenedParser : IParser
  6. {
  7. public Task ParseAsync(ResponseTextParser rtp)
  8. {
  9. if (rtp.Text.StartsWith("0{\"sid\":\""))
  10. {
  11. string message = rtp.Text.TrimStart('0');
  12. var args = EZXR.Glass.Core.JsonUtil.FromJson<OpenedArgs>(message);
  13. return rtp.Socket.InvokeOpenedAsync(args);
  14. }
  15. else
  16. {
  17. rtp.Parser = new ConnectedParser();
  18. return rtp.ParseAsync();
  19. }
  20. }
  21. }
  22. }