【问题标题】:Getting Orbited to work with my Twisted app让 Orbited 与我的 Twisted 应用程序一起工作
【发布时间】:2011-04-08 13:49:24
【问题描述】:

我似乎无法让 Orbited 使用我的 Twisted 应用程序。我有一个由 Twisted 提供的页面(比如 localhost:8000/page),其中包括来自轨道服务器(localhost:8001/static/Orbited.js)的 Orbited.js。然后我在端口 7777 上运行了一个 TCP 聊天服务器示例。我尝试使用 Orbited.TCPSocket 连接到聊天服务器:

conn=new Orbited.TCPSocket();
conn.open("localhost", 7777);
conn.send("test\r\n"); //error:  bad readyState

当 Orbited 为页面提供服务时,它可以正常工作,但当 twisted 从不同端口提供服务时,它就不行了。我的 orbited.cfg 看起来像这样:

[听] http://:8001 [使用权] * -> 本地主机:7777

之前(有效)我​​也有这个:

[静止的] 测试=index.html

其中 index.html 是另一个抓取 localhost:8001/static/Orbited.js 的页面,并从 localhost:8001/test 访问。

如何更改我的配置文件以处理来自另一个端口上的扭曲站点的请求?

更新

在尝试打开连接之前,我尝试将 Orbited.settings.port 更改为 8001,但出现错误:“不安全的 javascript 尝试从带有 url http://localhost:8001/static/xsdrBridge.html#1 的框架访问带有 url http://localhost:8000/page 的框架。域、协议和端口必须匹配。”

嗯,另外,我刚刚查看了轨道 wiki,显然,设置 Orbited.settings.port 是 完全 我应该做的。但我遇到了可怕的错误

【问题讨论】:

    标签: twisted orbited


    【解决方案1】:

    只有在连接处于打开状态后才能调用send()

    .onopen() 设置一个处理程序并从那里执行.send()

    【讨论】:

      【解决方案2】:

      我过去使用过 Orbited。它通常可以工作,但有几个怪癖可以让它顺利设置和运行。该项目本身似乎处于不断变化的状态(它似乎正在转向 node.js)。这两点让我建议 - 如果你能避免它 - 不要使用 Orbited。

      是否有更清洁的替代品?我会说,是的。您几乎可以使用股票 Twisted 上的 Websockets 来模拟 Orbited。这显然适用于较新的浏览器。那些年长的呢?好吧,有些开源项目包装了 websockets 并回退到 flash 作为旧浏览器的传输。该设置运行良好,实际上感觉比使用轨道等解决方案更干净。

      如果您查看http://github.com/rlotun/txWebSocket,您会发现 Twisted 的 websocket 实现的当前状态,以及如何在旧浏览器上回退到 flash 的示例。希望这对您有用,可以作为 Orbited 的替代品。

      【讨论】:

      • 非常感谢您的回答,我一直怀疑我可能需要在轨道上下降,因为我似乎无法让它工作
      猜你喜欢
      • 2021-07-17
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多