【问题标题】:Websocket send not working from phone networkWebsocket发送无法从电话网络工作
【发布时间】:2016-01-09 12:40:28
【问题描述】:

我有一个基于 websockets 的实时游戏。有了WIFI,一切都按预期工作。但是通过电话网络,连接已打开,但服务器上未收到消息。在客户端收到服务器 ping 时。我在 Heroku 上使用 ruby​​/sinatra 作为服务器的 websocket 实现,我的客户端是一个使用 websocket 库的 android 应用程序。

此行为仅发生在 3G 电话网络而非 WIFI 中。 由于电话网络提供商使用代理服务器,我已经阅读了有关 websockets 无法在电话网络上工作的信息,那么我是如何从服务器接收到 ping 的呢?请帮忙。

【问题讨论】:

  • 这是一些移动提供商上 WebSockets 的一个众所周知的问题。您是否通过不安全的 HTTP 运行 WebSocket?
  • @Drenmi 是的,我通过不安全的 HTTP 运行,这是问题吗?如果我尝试通过 SSL (wss) 可以解决它
  • 这很有可能奏效,是的,所以绝对值得一试。 :-)
  • 我实际上没有足够的源材料来写一个完整的答案,但它被提到,例如,在 WebSockets 上 Sam Saffron 的recent article 的第一点。
  • 谢谢@Drenmi!它通过使用 wss:// 而不是 ws:// 工作

标签: ruby sockets heroku websocket


【解决方案1】:

我通过 SSL 传递解决了这个问题。我使用 wss:// 而不是 ws://,即使在电话网络上也能正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 2022-06-22
    • 1970-01-01
    • 2011-10-02
    • 2023-03-08
    相关资源
    最近更新 更多