|
JavaScript / HTML Создание динамической разметки страниц |
15.04.2016, 22:08
|
#1
|
Знающий
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений (для 95 пользователей)
|
node js, 30% игроков не могут подключится
Добрый день. Серверная часть игры на node js, при входе в игру флешка сначала ждет ответа от сервера и лишь потом игра запускается. Третей части игроков так и не удается подключится к серверу по неизвестным причинам. Есть подозрения, что это как-то связано с номером порта, так как допрашивал игрока у которого не запускалась игра и когда я сменил порт на ноде, то у него все-таки зашло в игру. Что делать? В какую сторону копать? моет можно слушать несколько портов или еще какие выходы могут быть? Запускал на порте 6969, потом сменил на 6868. Спасибо.
__________________
StimuL
Maks
|
(Offline)
|
|
16.04.2016, 12:19
|
#2
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: node js, 30% игроков не могут подключится
А не могло ли помочь то, что ты просто сервер перезапустил?
|
(Offline)
|
|
16.04.2016, 14:24
|
#3
|
Знающий
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений (для 95 пользователей)
|
Ответ: node js, 30% игроков не могут подключится
Сообщение от pax
А не могло ли помочь то, что ты просто сервер перезапустил?
|
Навряд ли, перед этим пробовал разные изменения и тоже перезапускал и никаких изменений, что странно у некоторых игроков работает пару недель потом перестает работать, когда у тех у кого не работало, начинает работать, как будто кто-то сидит и выбирает у кого будет подключатся а у кого нет.
__________________
StimuL
Maks
|
(Offline)
|
|
16.04.2016, 21:00
|
#4
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: node js, 30% игроков не могут подключится
На всякий спрошу - на обоих сторонах установлен nodelay?
|
(Offline)
|
|
16.04.2016, 22:39
|
#5
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: node js, 30% игроков не могут подключится
Какой протокол используешь для соединения?
Порта да, часто блокируют. Всякие организации, университеты, предприятия, и публичные вай-фаи имеют жёсткие ограничени на порты и трафик.
Также "странный" трафик который идёт не по SSL соединению, я встречал не раз разные места где обрывают соединения.
Например WebSockets соединение, не по SSL, по 80 порту, некоторые университеты обрывают нарошно, основываясь 101 HTTP коду (Switch Protocol). Переход на SSL помогает, т.к. они не могут получить доступ к данным запроса.
Лучший вариант с хорошим соединением, это SSL по стандартному порту 443.
Это относится не к node.js, а вообще к сети.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
18.04.2016, 14:51
|
#6
|
Знающий
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений (для 95 пользователей)
|
Ответ: node js, 30% игроков не могут подключится
pax, я так понимаю nodelay перед отправкой всю дату воедино собирает? ну я вручную такую штуку написал, жду пока вся дата придет и только потом обрабатываю.
moka, TCP/IP использую, ну как выход можно слушать несколько портов? и если с одним портом проблемы попробовать подключится с клиента к другому порту. Или это не самое верное решение?
Еще немного информации, на стороне клиентов у которых не работает выскакивает security error
__________________
StimuL
Maks
|
(Offline)
|
|
18.04.2016, 15:22
|
#7
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: 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 за это полезное сообщение:
|
|
19.04.2016, 01:33
|
#8
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: node js, 30% игроков не могут подключится
Сообщение от KingMaks
pax, я так понимаю nodelay перед отправкой всю дату воедино собирает? ну я вручную такую штуку написал, жду пока вся дата придет и только потом обрабатываю.
|
Не совсем, nodelay указывает, что данные надо отправлять сразу, а не ждать достаточного размера пакета (не собирать несколько пакетов в один). Читать полностью данные ты правильно сделал, но отправлять надо сразу. Либо вызывать flush или подобные методы для мгновенной отправки.
Просто есть вероятность, что сервер может не дождаться пакета логина. Ты пинг делаешь раз в какой-то промежуток времени?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:35.
|