我有一个基于websocket的实时游戏。有了WIFI,一切都如预期。但通过电话网络,连接被打开,但服务器上没有收到消息。而在客户端接收到服务器ping。我在heroku上使用websocket实现,服务器使用ruby/sinatra,我的客户端是一个使用websocket库的android应用程序。
这种行为只发生在3G电话网络上,而不是WIFI。我读到过由于电话网络提供商使用代理服务器而导致网络套接字无法从电话网络工作的消息,那么我是如何从服务器接收到ping的呢?请帮忙。
我通过SSL传递解决了这个问题。我使用wss://而不是ws://,即使在电话网络上也能很好地工作。