Получение орбиты для работы с моим приложением Twisted - PullRequest
1 голос
/ 06 сентября 2010

Я не могу заставить Orbited работать с моим приложением Twisted.У меня есть страница, обслуживаемая Twisted (скажем, localhost: 8000 / page), которая включает Orbited.js с орбитального сервера (localhost: 8001 / static / Orbited.js).Затем у меня есть пример сервера чата TCP, работающий на порте 7777. Я пытаюсь использовать 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 получить доступ к кадру с URL http://localhost:8000/page из кадра с URLhttp://localhost:8001/static/xsdrBridge.html#1. Домены, протоколы и порты должны совпадать. "

Хм, я только что посмотрел на орбитальную вики и, очевидно, установил Orbited.settings.port точно что я должен делатьно я получаю ужасные ошибки

Ответы [ 2 ]

4 голосов
/ 11 марта 2011

Вы можете позвонить send() только после того, как соединение находится в открытом состоянии.

Поставь обработчик для .onopen() и сделай .send() оттуда.

1 голос
/ 10 сентября 2010

Я использовал Orbited в прошлом. В целом, это работает, но есть несколько особенностей, чтобы настроить его и работать без сбоев. Кажется, что сам проект находится в состоянии изменения (похоже, что он переходит на node.js). Оба эти пункта заставляют меня предположить, что - если вы можете избежать этого - не , чтобы использовать Orbited.

Есть ли альтернативы, которые чище? Я бы сказал, да. Вы можете в значительной степени подражать Orbited с Websockets на складе Twisted. Это будет явно работать для новых браузеров. А как насчет старых? Ну, есть проекты с открытым исходным кодом, которые обертывают веб-сокеты и возвращаются к флэш-памяти в качестве транспорта для старых браузеров. Установка работает довольно хорошо и на самом деле чувствует себя чище, чем при использовании решения, подобного орбитальному.

Если вы посмотрите http://github.com/rlotun/txWebSocket, вы найдете текущее состояние реализации веб-сокета Twisted, а также пример того, как использовать флэш-память в старых браузерах. Надеюсь, это будет достаточно полезно для вас, чтобы служить заменой Орбитальной.

...