1

我在使用 App Engine 通道 API 时遇到了间歇性问题。在大多数情况下,也许 90% 的时间里,一切正常。但是剩下的 10% 的时间我得到一个不可用的频道。看了几个月的代码,我坚信这个问题不是由于逻辑错误造成的。我所说的不可用通道是指即使客户端成功连接到它,服务器也无法向它发送消息。客户端和服务器上涉及的大部分操作都成功完成:

  • 在服务器上,我创建了一个具有会话唯一的新客户端 ID 的通道
  • 客户端获取相应的令牌并连接到它
  • 在客户端,在通道套接字上调用 onOpen()

没有成功的一件事是为这些有缺陷的通道调用 /_ah/channel/connected。我已经尝试了几十种可能的解决方法,但都没有成功。现在我通过优雅地重试直到成功来处理这个问题,但是如果没有这些技巧,它会非常好。

4

2 回答 2

1

我还没有看到任何代码,但从你所说的可能与

间歇性错误代码 400,客户端连接通道上的描述“”

我正在对所有客户端套接字使用一种蛮力循环消息传递(即使它们已经关闭,它也有点多余,但开销似乎很低)并且还没有发现任何问题(我也没有很好地对其进行测试) )

于 2013-01-16T08:15:20.010 回答
0

似乎他们在最后一个版本 1.8.2 中修复了通道 APi 中的泄漏:https ://code.google.com/p/googleappengine/issues/detail?id=9283 https://code.google.com/ p/googleappengine/wiki/SdkForJavaReleaseNotes

于 2013-07-19T03:44:35.440 回答