【问题标题】:How to set Meteor WebSocket port for clients?如何为客户端设置 Meteor WebSocket 端口?
【发布时间】:2013-10-27 09:38:11
【问题描述】:

如何设置 WebSocket 监听的端口?我正在尝试在 OpenShift 上部署 Meteor,但是他们有一个 nodejs-proxy 服务器,它侦听端口 8000 而不是 80,并重定向到我的 Meteor 守护程序。它可以正常工作,因为手动创建的 WebSocket 对象可以正常工作。

我设置了 ROOT_URL 但没有成功。它出现在浏览器上,定义如下:

process.env.ROOT_URL = 'http://' + process.env.OPENSHIFT_APP_DNS + ':8000'

我正在使用此快速入门:https://github.com/openshift-quickstart/openshift-meteorjs-quickstart。请参阅文件 meteorshim.js 以供参考。

一切正常,包括长轮询。

【问题讨论】:

  • 你有这个工作吗?我正在努力解决同样的问题。你能发布答案吗?

标签: javascript node.js websocket meteor port


【解决方案1】:

我为此苦苦挣扎了一段时间,并尝试了不同的方法。在 OpenShift 中对我有用的解决方案是:

设置 DDP_DEFAULT_CONNECTION_URL 变量

//for http
process.env.DDP_DEFAULT_CONNECTION_URL = 'http://' + process.env.OPENSHIFT_APP_DNS + ':8000'
//for ssl
process.env.DDP_DEFAULT_CONNECTION_URL = 'https://' + process.env.OPENSHIFT_APP_DNS + ':8443'

根据this blog post

【讨论】:

    【解决方案2】:

    只需使用环境变量PORT

    所以我猜:

    process.env.PORT = 8000
    process.env.ROOT_URL = 'http://' + process.env.OPENSHIFT_APP_DNS
    

    要专门在不同的端口上设置 websocket 并让流星在不同的端口上运行,我不太确定这是否可行。

    【讨论】:

    • 仍然不可能。此端口仅用于 HTTP 请求,不适用于 WebSocket。
    • @caruccio 这设置了两个端口,您可以使用 nginx 将您的应用程序代理到另一个端口,我猜是 nginx.org/en/docs/http/websocket.html。另一种选择是在此处修改流星github.com/meteor/meteor/blob/devel/packages/livedata/… 并使用您自己的端口而不是 /websocket 端点
    • 你是对的。发帖 10 分钟后我才意识到,但是 stackoverflow 不允许我编辑它。
    猜你喜欢
    • 1970-01-01
    • 2022-09-30
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 2016-01-31
    • 1970-01-01
    相关资源
    最近更新 更多