【问题标题】:"Unknown SID" error in Channel API Google App Engine - Python Client通道 API Google App Engine 中的“未知 SID”错误 - Python 客户端
【发布时间】:2014-02-21 20:15:06
【问题描述】:

由于 Google App 引擎没有为 Channel API 提供官方的 python 客户端 API,我遵循了这个代码 https://bitbucket.org/lohre/gae_channel/src/8bd89615ac83?at=default

问题是我在 2-3 分钟后或有时立即收到“未知 SID”错误。我还寻找修复程序并找到了这个Constant disconnects due to channels going stale for no reason

但是,建议的解决方案适用于 JavaScript 客户端。有人可以看看代码并指导我如何摆脱这个错误。我想关闭连接并重新启动会起作用(如建议的那样),但我也无法做到。任何帮助表示赞赏!谢谢!!

【问题讨论】:

    标签: python google-app-engine channel-api


    【解决方案1】:

    我在编写 Node.js 模块以连接到 Channel 服务 https://github.com/gelleouet/nodejs-googleapp-channel 时遇到了同样的问题。我复制了可以正常工作的Java版本https://github.com/gvsumasl/jacc,我发现了问题。服务通道系统使用在侦听套接字时更改的会话 ID。如果没有很好地读取新值,则此错误“Unknow SID”会触发每个通道重新连接。这方面有几个步骤:

    1. GET /talkgadget/d : 读取 clientId 和 sessionId(见 http 响应)

      var a = new chat.WcsDataClient("https://talkgadget.google.com/talkgadget/",
      "",
      "957778AE55824F5D", // clientId
      "Nnc1-h3uIHY", // sessionId
      "1394484158",
      "WCX",
      "AHRlWrpfZ3LMYkQU8bjBsHNPApz7SB71Sc00N5Ug"
      );        
      
    2. POST /talkgadget/dch/bind :读取 SID 和新的 sessionId(参见 http 响应)

      [[0,["c","290B58E8BA60D97F",,8] // 290B58E8BA60D97F is SID
      ]
      ,[1,["b"]
      ] // 957778AE55824F5D is new sessionId
      ,[2,["c",['957778AE55824F5D', ["ei","E4jToU4lPn0","1394484158",0,28800000,57600000,28800000] 
      ]]
      ]
      ]
      
    3. POST /talkgadget/dch/bind:无事可做。

    4. GET /talkgadget/dch/bind : 读取用户消息和新的 sessionId (所有带有 [xx,["c",['xxxxxx', ... 的消息都包含 sessionId)

      [[147,["c",['957778AE55824F5D',["cds",1395328474416]
      ]]
      ]
      

      ]

    如果您在第 2 步中没有读取正确的 SID 或每次读取 websocket 时都没有读取新的 sessionId,则始终会触发错误 400 Unknow SID。

    • 第一个连接:请求 1、2、3、4。保持请求 4 处于活动状态
    • 请求 4 关闭时重新连接
    • 当错误 401(无效令牌)或有时 400(未知 sid)时重新连接 1、2、3、4

    【讨论】:

      猜你喜欢
      • 2019-03-08
      • 2013-11-05
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-01
      相关资源
      最近更新 更多