Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.06.2018, 21:35
Новичок на форуме
Отправить личное сообщение для Porolon Посмотреть профиль Найти все сообщения от Porolon
 
Регистрация: 04.09.2011
Сообщений: 2

Как создать искуственную нагрузку?
Всем привет.
Пишу 2d онлайн игру на node.js + socket.io
Возникла необходимость протестировать игру на большое кол-во игроков.

Сервер через сокет отдает игровой мир 25 раз в секунд для каждого игрока.

Делаю так:
for(var i = 0; i < 5; i++) {
	var s = io.connect('https://***.ru');
}


На карте появляются 5 дополнительных игроков. Все хорошо работает, браузер нагружает процессор на 50% (если 1 игрок, то 15%).

Проблема возникает когда я пытаюсь подключить в цикле не 5, а 10 игроков. Загрузка процессора браузером возрастает до 100%. И эти соединения не держатся, с течением времени соединения просто закрываются и игроки пропадают с карты.

Вопрос к бывалым, почему так происходит? Не думаю что это VDS сервер не выдерживает (1 ядро, 2 Гб оперативки). Возможно это происходит из-за нагрузки на клиенте, и если бы к серверу подключилось бы 10 игроков с разных машин, то соединения бы не закрывались

Последний раз редактировалось Porolon, 11.06.2018 в 22:56.
Ответить с цитированием
  #2 (permalink)  
Старый 15.06.2018, 11:42
Аспирант
Отправить личное сообщение для stweet Посмотреть профиль Найти все сообщения от stweet
 
Регистрация: 21.12.2011
Сообщений: 41

Нода смело держит и по 1000 пользователй. Оптимизация и только оптимизация! Зачем отдавать весь мир каждый раз? Не проще отдать его при коннекте а после отправлять только координаты играков?
Ответить с цитированием
  #3 (permalink)  
Старый 26.07.2018, 11:47
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

А Вы, случайно не в IE тестируете? IE11 открывает максимум 6 сокетов к одному домену (сайту). Google Chrome, Opera - 255 сокетов, FireFox- 200.
Также возможно, что из-за 100%-й загрузки процессора в сокеты не успевает проталкиваться информация (тот же ping/pong) и они закрываются по таймауту.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать div на чужом сайте? liz2887yoko Элементы интерфейса 0 29.10.2017 03:09
Angular 2+: Как создать свой декоратор? Как создаются стандартные? Shitbox2 Angular.js 2 31.07.2017 19:19
Как создать цитатник? WGN Общие вопросы Javascript 10 29.01.2017 01:39
Как создать галерею с помощью jQuery MariyaIgorevna jQuery 4 02.03.2016 01:14
как создать елемент с вложеными елементами scuter Events/DOM/Window 11 14.05.2008 16:15