Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Веб-программирование > JavaScript / HTML

JavaScript / HTML Создание динамической разметки страниц

Ответ
 
Опции темы
Старый 15.04.2016, 19:08   #1
KingMaks
Знающий
 
Аватар для KingMaks
 
Регистрация: 25.11.2009
Сообщений: 312
Написано 35 полезных сообщений
(для 95 пользователей)
node js, 30% игроков не могут подключится

Добрый день. Серверная часть игры на node js, при входе в игру флешка сначала ждет ответа от сервера и лишь потом игра запускается. Третей части игроков так и не удается подключится к серверу по неизвестным причинам. Есть подозрения, что это как-то связано с номером порта, так как допрашивал игрока у которого не запускалась игра и когда я сменил порт на ноде, то у него все-таки зашло в игру. Что делать? В какую сторону копать? моет можно слушать несколько портов или еще какие выходы могут быть? Запускал на порте 6969, потом сменил на 6868. Спасибо.
__________________
StimuL
Maks
(Offline)
 
Ответить с цитированием
Старый 16.04.2016, 09:19   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,496
Написано 2,953 полезных сообщений
(для 5,217 пользователей)
Ответ: node js, 30% игроков не могут подключится

А не могло ли помочь то, что ты просто сервер перезапустил?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 16.04.2016, 11:24   #3
KingMaks
Знающий
 
Аватар для KingMaks
 
Регистрация: 25.11.2009
Сообщений: 312
Написано 35 полезных сообщений
(для 95 пользователей)
Ответ: node js, 30% игроков не могут подключится

Сообщение от pax Посмотреть сообщение
А не могло ли помочь то, что ты просто сервер перезапустил?
Навряд ли, перед этим пробовал разные изменения и тоже перезапускал и никаких изменений, что странно у некоторых игроков работает пару недель потом перестает работать, когда у тех у кого не работало, начинает работать, как будто кто-то сидит и выбирает у кого будет подключатся а у кого нет.
__________________
StimuL
Maks
(Offline)
 
Ответить с цитированием
Старый 16.04.2016, 18:00   #4
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,496
Написано 2,953 полезных сообщений
(для 5,217 пользователей)
Ответ: node js, 30% игроков не могут подключится

На всякий спрошу - на обоих сторонах установлен nodelay?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 16.04.2016, 19:39   #5
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,453 полезных сообщений
(для 6,859 пользователей)
Ответ: node js, 30% игроков не могут подключится

Какой протокол используешь для соединения?
Порта да, часто блокируют. Всякие организации, университеты, предприятия, и публичные вай-фаи имеют жёсткие ограничени на порты и трафик.
Также "странный" трафик который идёт не по SSL соединению, я встречал не раз разные места где обрывают соединения.
Например WebSockets соединение, не по SSL, по 80 порту, некоторые университеты обрывают нарошно, основываясь 101 HTTP коду (Switch Protocol). Переход на SSL помогает, т.к. они не могут получить доступ к данным запроса.

Лучший вариант с хорошим соединением, это SSL по стандартному порту 443.

Это относится не к node.js, а вообще к сети.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (18.04.2016)
Старый 18.04.2016, 11:51   #6
KingMaks
Знающий
 
Аватар для KingMaks
 
Регистрация: 25.11.2009
Сообщений: 312
Написано 35 полезных сообщений
(для 95 пользователей)
Ответ: node js, 30% игроков не могут подключится

pax, я так понимаю nodelay перед отправкой всю дату воедино собирает? ну я вручную такую штуку написал, жду пока вся дата придет и только потом обрабатываю.

moka, TCP/IP использую, ну как выход можно слушать несколько портов? и если с одним портом проблемы попробовать подключится с клиента к другому порту. Или это не самое верное решение?

Еще немного информации, на стороне клиентов у которых не работает выскакивает security error
__________________
StimuL
Maks
(Offline)
 
Ответить с цитированием
Старый 18.04.2016, 12:22   #7
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,453 полезных сообщений
(для 6,859 пользователей)
Ответ: node js, 30% игроков не могут подключится

Сообщение от KingMaks Посмотреть сообщение
moka, TCP/IP использую, ну как выход можно слушать несколько портов? и если с одним портом проблемы попробовать подключится с клиента к другому порту. Или это не самое верное решение?

Еще немного информации, на стороне клиентов у которых не работает выскакивает security error
HTTP использует TCP по порту 80.
HTTPS (HTTP + SSL) использует TCP по порту 443.

Если один порт не разрешает, то скорее всего и остальные не разрешит, и сеть настроена на запрет всех портов с исключениями конкретных (80, 443, и пару других, скорее всего занятых конкретными сервисами).

Знаю что из flash'а, нужно делать обмен policy там какой-то, просто открывать соединение они вроди не дают.
В общем, ставь nginx на сервере, делай proxy на node.js процесс, и уже на ноде обрабатывай это дело, чтобы трафик по 80 порту, сортировался между веб темой и сокетами, таким образом ты обойдёшь проблемы с запретами.

Как уже говорил, лучше всего использовать HTTPS (443), т.к. более жесткие организации обрывают сокеты по порту 80ому, если им "не нравятся" заголовки запроса.

А вообще, чтобы это дело было ещё проще всего, используй WebSocket'ы во флаше и ноде, по порту 443 с валидным SSL трафиком.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
KingMaks (18.04.2016), St_AnGer (18.04.2016)
Старый 18.04.2016, 22:33   #8
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,496
Написано 2,953 полезных сообщений
(для 5,217 пользователей)
Ответ: node js, 30% игроков не могут подключится

Сообщение от KingMaks Посмотреть сообщение
pax, я так понимаю nodelay перед отправкой всю дату воедино собирает? ну я вручную такую штуку написал, жду пока вся дата придет и только потом обрабатываю.
Не совсем, nodelay указывает, что данные надо отправлять сразу, а не ждать достаточного размера пакета (не собирать несколько пакетов в один). Читать полностью данные ты правильно сделал, но отправлять надо сразу. Либо вызывать flush или подобные методы для мгновенной отправки.
Просто есть вероятность, что сервер может не дождаться пакета логина. Ты пинг делаешь раз в какой-то промежуток времени?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
KingMaks (20.04.2016)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 21:56.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com