【问题标题】:socket.io on openshift with angular-fullstackopenshift 上的 socket.io 与 angular-fullstack
【发布时间】:2014-09-10 19:43:07
【问题描述】:

我使用 Yeomans angular-fullstack 生成器生成了一个 node.js 应用程序。 除了使用 socket.io 之外,一切都很好。使用 angular-fullstack:openshift 将我的应用程序上传到 openshift 后,我​​被告知我必须:

Openshift websockets 使用端口 8000,您需要更新客户端 连接到正确的端口以使套接字正常工作。 在/client/app/components/socket/socket.service: var ioSocket = io.connect('http://my-domain.rhcloud.com/:8000')"

我不知道在哪里做这个。我正在使用 package.json 文件中显示的 socket.io 版本 1.0.6。

==> app-root/logs/nodejs.log

顺便说一句,这个应用程序,包括 socket.io,在我的本地开发机器上运行良好!

感谢您的帮助! 秋天的家伙

【问题讨论】:

    标签: node.js socket.io openshift yeoman


    【解决方案1】:

    我现在的工作解决方案是:

    我将 openshift 应用程序的创建更改为“不创建可扩展的应用程序”(我禁用了 yo angular-fullstack:openshift 命令中的 -s 开关)

    之后,我将socket.io的连接改为:

    var ioSocket = io('http://my-domain.rhcloud.com:8000', {
      // Send auth token on connection, you will need to DI the Auth service above
      // 'query': 'token=' + Auth.getToken()
    });
    

    在“/client/components/socket/socket.service.js”文件中。 Socket.io 现在可以正常工作了!

    【讨论】:

      【解决方案2】:

      我不知道为什么 openshift 需要这个,但你只需要修改你的客户端代码。

      在您的客户端代码中,您应该有这样的内容:

      var socket = io();
      

      您显然需要将其更新为:

      var socket = io('http://mywebsite.com:8000');
      

      值得注意的是,还有很多其他托管服务提供商(甚至是免费的)不需要您跳过这些环节。

      【讨论】:

      • 感谢您的回答,但对我没有帮助。我仍然遇到同样的错误。
      猜你喜欢
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      • 2017-10-10
      • 1970-01-01
      • 2016-04-22
      • 2015-03-23
      • 2015-02-04
      • 1970-01-01
      相关资源
      最近更新 更多