【发布时间】:2014-08-06 15:49:21
【问题描述】:
我的 android 应用程序有问题,它使用高速公路从 Websocket 服务器接收消息。服务器使用 libwebsockets。
我能够接收足够“小”的消息。所以这没问题,但是一旦消息大小超过某个值,应用程序就会停止调用onTextMessageReceive() 方法。
在那之后发生了一次,我也无法再收到其他任何东西了。我需要重新启动我的应用才能再次收到消息。
有人知道问题出在哪里吗?
我检查了MaxMessagePayloadSize 和MaxFramePayloadSize 的参数,它们的大小远远超过我试图发送到我的应用程序的大小。
【问题讨论】:
-
您遇到问题的“确定值”是多少? AutobahnAndroid 在大小方面的 2 个位置是:github.com/tavendo/AutobahnAndroid/blob/master/Autobahn/src/de/… 和 github.com/tavendo/AutobahnAndroid/blob/master/Autobahn/src/de/…。这会触发吗?
-
嘿,很抱歉回答晚了:我发现这个特定的值是 150 字节,任何大于这个值都会导致问题。我还发现了一个奇怪的行为。因为使用来自websocket.org 的 echoTest 示例服务器,它可以正常工作。使用此服务器时,我可以接收超过 150 个字节,但我的 libwebsockets 没有,奇怪的是,如果我使用另一个客户端,我也可以使用 libwebsockets 接收超过 150 个字节。似乎问题在于 libwebsockets 和高速公路的结合。我发现我不知何故陷入了goo.gl/i9UbLU的while循环
-
我不了解 libwebsocket,但 AutobahnAndroid 可以很好地与各种服务器配合使用 - 并且使用 AutobahnTestsuite 对其进行了协议合规性测试。
标签: android websocket autobahn