获得Orbited可以使用我的Twisted应用程序

时间:2010-09-05 23:37:42

标签: twisted orbited

我似乎无法让Orbited使用我的Twisted应用程序。我有一个页面,由Twisted(比如localhost:8000 /页面)提供,其中包括来自轨道服务器的Orbited.js(localhost:8001 / static / 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看起来像这样:

[listen]
http://:8001

[access]
* -> localhost:7777

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

[static]
test=index.html

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

如何更改配置文件以处理来自其他端口上的扭曲网站的请求?

更新

我尝试在尝试打开连接之前将Orbited.settings.port更改为8001,但我收到错误消息:“不安全的javascript尝试使用网址http://localhost:8000/page从具有网址http://localhost:8001/static/xsdrBridge.html#1的框架访问框架。域,协议和端口必须匹配。“

嗯,同样,我只是看着轨道的维基,显然,设置Orbited.settings.port 正是我应该做的事情。但我得到了可怕的错误

2 个答案:

答案 0 :(得分:4)

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

.onopen()添加处理程序并从那里执行.send()

答案 1 :(得分:1)

我过去曾使用过Orbited。它一般工作,但有几个怪癖,以使其设置和运行顺利。项目本身似乎处于不稳定状态(似乎正在转向node.js)。这两点都促使我建议 - 如果你可以避免它 - 使用Orbited。

是否有更清洁的替代品?我会说,是的。您可以使用Twisted库存的Websockets模拟Orbited。这显然适用于较新的浏览器。那些旧的呢?好吧,有一些开源项目可以包装websockets并作为旧浏览器的传输回退到flash。设置工作得很好,实际上感觉比使用像轨道运行的解决方案更清晰。

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