1

我似乎无法让 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 为页面提供服务时,它可以正常工作,但当从不同的端口为它提供服务时,它就不行了。我的 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 的框架访问带有 url http ://localhost:8000/page的框架:8001/static/xsdrBridge.html#1 . 域、协议和端口必须匹配。”

嗯,我也只是查看了轨道 wiki,显然,设置 Orbited.settings.port正是我应该做的。但我遇到了可怕的错误

4

2 回答 2

4

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

放置一个处理程序并从那里.onopen()做一个。.send()

于 2011-03-11T08:25:56.557 回答
1

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

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

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

于 2010-09-10T10:10:05.793 回答