![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2006
Сообщений: 27
|
Делается чат. Серверная часть на PHP, клиентская на Flash. Вот небольшой тестовый код клиентской части:
//*********************************
// Обработчики событий
//*********************************
// Вызываетется в момент создания соединения
function myOnConnect(success) {
if (success) trace("OK 1");
else trace("ERROR 1");
}
// Вызывается при получении какого-либо сообщения от сервера
function answer(str) {
trace("answer: "+str);
}
// Вызывается при разрыве соединения
function xxx() {
trace("die!!!");
}
//**********************************
socket = new XMLSocket()
socket.onConnect = myOnConnect;
socket.onData = answer;
socket.onClose = xxx;
if(socket.connect("gorodsnov.ru", 8080)) trace("OK 1");
else trace("Error 2");
socket.send("Hello, server!\n");
Ставятся задачи: 1. Определить причины, из-за которых нет коннекта. 2. Написать пользователям грамонтную инструкцию, что им надо сделать, чтобы чат работал. Пример инструции: 1. Должен быть Flash Player такой-то версии. 2. В настройках Windows там-то, там-то отключить такой-то файрвол. 3. Вырубить такой-то такой-то прокси-сервер. 4. Не ставить такие-то такие-то программы интернет безопасности или поотрубать в них такие-то такие-то настройки. 5. Звякнуть интернет провайдеру и узнать у него, не блокирует ли он IP пакеты, адресованные в порт 8080. ......... Вышесказанное написано "от балды". Сейчас надо поянть, из-за чего конкретно XMLSocket не работает на 30% компьютеров и как грамотно составить инструкцию для пользователей чата. Лично на моем домашнем компе код работает исправно и пока не нашлось ни одного способа, заставляющего его сломаться. ПО каким наиболее распространенным причинам может не работать XMLSocket ??? |
|
|||||
|
Регистрация: Dec 2006
Сообщений: 27
|
Цитата:
Одну, достаточно частую, только что определил. Часть пользователей заходит на сайт без приставки www, а часть - с приставкой www. Внутри же Флэшки прописано что-то определенное (либо c www, либо без www). Политика безопасности не позволяет делать соединения на другие сайты (www и без www - разные сайты). Проблема решилась созданием файла crossdomain.xml. Теперь стоит задача выявить другие причины, из-за которые клиентская часть может не работать. Чем больше, тем лучше ![]() |
|
|||||
|
Регистрация: Dec 2006
Сообщений: 27
|
P.S. После исправления ошибки "с WWW, без WWW" статистика стала существенно лучше. Тестовый скрипт работает примерно у 90% пользователей (ранее было лишь у 60%). Но я полагаю, можно и лучшего добиться, если поискать еще причины
![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
|
|
|||||
|
Регистрация: Dec 2006
Сообщений: 27
|
Цитата:
Пользователи чата - люди из мира с самыми разными операционками. И в чём важность этого? И еще, любопытно, в чем недостатки демона, написанного на PHP? Какая разница на чем писать? PHP, C++, TCL и т.п. В любом случае пямяти расходуется немного, а в загрузке процессора - разница не очень большая. Зато на PHP и писать несложно, и с MySQL базой данных легко коннектиться ![]() |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Цитата:
|
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
возможно, что вторая по распространенности причина, это то, что закрыт порт 8080.
насколько я помню, наиболее эффективно это решалось использованием 80-го порта. но это не всегда возможно по техническим причинам. |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
и еще:
если сокет не законнектился, то обычно бесполезно писать мануалы юзерам. в таких случаях нужно просто переходить на HTTP запросы. |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:47. |
|
|
« Предыдущая тема | Следующая тема » |
|
|