【问题标题】:Websocket support in managed vm托管 vm 中的 Websocket 支持
【发布时间】:2015-03-05 20:05:43
【问题描述】:

我尝试在我的 Golang 应用程序中使用 websockets,该应用程序由 Google 的 managed vm 提供,但我无法从 Chrome 开发者控制台中得到它:

到“ws://127.0.0.1:8080/connect”的 WebSocket 连接失败:错误 在 WebSocket 握手期间:意外的响应代码:400" 并且在我的 后端我得到:“websocket:连接头!=升级。

我的问题,托管 vm 是否支持 Golang websockets?如果是这样,将不胜感激。

【问题讨论】:

  • 如果您尝试从 APP_ID.appspot.com 网址访问服务器,您可能会看到该错误。您应该通过公共 ip(或 CNAME)直接访问实例。如果在本地运行,既然你提到了 127.0.0.1,那就使用 docker 容器 ip。
  • 仍然没有运气,我已经将我的应用程序部署到“生产”,更新了我的 websocket url 以指向我的appspot url(我暂时只运行一个实例),我仍然收到:“到 'ws://APPID.appspot.com/connect' 的 WebSocket 连接失败:WebSocket 握手期间出错:意外的响应代码:400”
  • 您不能将appspot.com url 用于websockets。您需要使用 managed-vm 的 ip 地址直接访问服务器。使用 appspot.com 网址,您在访问应用程序之前访问了其他 Google 前端服务器。

标签: google-app-engine go


【解决方案1】:

根据 Google 的 documentation 和那里包含的 example,托管虚拟机目前支持“Java”语言的 WebSocket。可能在未来的版本中(因为托管 VM 仍处于 Beta 版),将考虑使用“GO”语言来解决此类功能和/或特性。

【讨论】:

    猜你喜欢
    • 2016-04-18
    • 1970-01-01
    • 2014-11-07
    • 2013-03-29
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    相关资源
    最近更新 更多