首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Crossbar.io外部工作人员配置

Crossbar.io外部工作人员配置
EN

Stack Overflow用户
提问于 2015-09-25 16:12:22
回答 1查看 388关注 0票数 1

我已经使用横梁有一段时间了,我喜欢它。我有一个问题,关于运行连接到外部路由器的工作人员的最佳方法。我使用“横栏启动”并创建一个连接到路由器的配置文件,这非常有效。

最近,我的需求已经更改为我希望通过环境变量将路由器url和王国传递到配置文件中的位置。经过尝试和错误之后,我得出结论,这在当前的XBAR实现中是不可能的。

然后,我使用以下方法创建了一个应用程序运行程序,其中我从config vars检索了领域和url。

代码语言:javascript
复制
runner = ApplicationRunner(url=url, realm=realm)
runner.run(AppSession)

这是可行的,但我注意到我的服务器会周期性地停机。在根引发之后,我意识到反向代理在1小时的不活动之后正在超时连接。查看服务器日志,我得到了"onDisconnect“回调。查看XBAR应用程序运行程序文档,它声明如下

代码语言:javascript
复制
This class is a convenience tool mainly for development and quick hosting
of WAMP application components.

我的服务以"runit“脚本作为守护进程运行。我想出的一些快速解决办法是

  • 关闭运行程序,让守护进程重新启动服务。
  • 显式地对任何断开连接执行连接处理。

考虑到XBAR人员明确表示ApplicationRunner是一种开发工具,所有这些都开始让人感到非常讨厌。有人知道我是否可以使用除应用程序运行程序以外的其他东西,或者以某种方式将环境变量放入config.json文件中?

作为临时解决办法,我正在使用sed。这是我的配置文件

代码语言:javascript
复制
{
    "controller": {
    },
    "workers": [
    {
        "type": "container",
        "options": {
            "pythonpath": [".."]
        },
        "components": [
            {
                "type": "class",
                "classname": "src.app_session.AppSession",
                "realm": "%%%ROUTER_REALM%%%",
                "transport": {
                    "type": "websocket",
                    "endpoint": {
                        "type": "tcp",
                        "host": "%%%ROUTER_HOST%%%",
                        "port": %%%ROUTER_PORT%%%
                    },
                    "url": "%%%ROUTER_PROTOCOL%%%://%%%ROUTER_HOST%%%/ws"
                }
            }
        ]
     }
  ]

}

我的runit脚本是

代码语言:javascript
复制
#!/bin/bash

# Update the ROUTER config parameters
sed -i -e "s/%%%ROUTER_HOST%%%/${ROUTER_HOST}/g" /app/.crossbar/config.json
sed -i -e "s/%%%ROUTER_PORT%%%/${ROUTER_PORT}/g" /app/.crossbar/config.json
sed -i -e "s/%%%ROUTER_REALM%%%/${ROUTER_REALM}/g" /app/.crossbar/config.json
sed -i -e "s/%%%ROUTER_PROTOCOL%%%/${ROUTER_PROTOCOL}/g" /app/.crossbar/config.json

cat /app/.crossbar/config.json

cd /app/
exec crossbar start
EN

回答 1

Stack Overflow用户

发布于 2015-09-26 11:00:12

Crossbar.io确实没有任何机制来实现您想做的事情。从项目的角度来看,没有计划将其作为一个特性来实现。我们想把重点放在management上,它将支持动态管理Crossbar.io。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32786414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档