2016-07-15 1 views
1

Я делаю игру в режиме реального времени для facebook. Теперь я транслирую состояние с помощью websockets. Но для данных в режиме реального времени udp намного лучше. Я узнал, что там есть WebRTC. Но я не могу использовать его, потому что он одноранговый, и мне нужен авторитетный сервер (тот, который управляет физикой и затрудняет обманывать).Браузер html5 в режиме реального времени. параметры состояния игры в прямом эфире

Я рассмотреть следующие варианты:

  1. использование флэш-сокеты. Но я никогда не использовал вспышку. Можно ли даже сделать обертку в javascript для flash udp? Как трудно? Требуется ли на стороне сервера некоторые специальные материалы?
  2. Возможно, браузер поддерживает udp в некотором роде? Могу ли я передавать видео или аудио в браузер с помощью udp? возможно, можно использовать видеопоток для моего состояния игры
  3. использовать веб-сайты. У меня есть прогноз на стороне клиента, и я надеюсь, что латентность будет ниже 100 мс (даже ниже, чтобы быть откровенным с тобой) - так, может быть, все в порядке?
  4. использование этот WebRTC предмет. возможно, я смогу каким-то образом имитировать браузер на сервере и использовать его как сверстник? Например, запустите кучу хромов и отправьте им игровые данные с помощью websocket (без латентности, они находятся на одной машине), а затем поток для клиентов по udp? Но браузеры могут иметь ограничение на одноранговые соединения, и мне нужен процессор на сервере для запуска физики.

Что является лучшим вариантом? Вы реализовали один из них и каков был результат?

+0

Вы можете проверить эту статью: «Оптимизация 3D многопользовательских игр Синхронизация через Интернет» (Http: //blog.lightstreamer. ком/2013/10/оптимизируя-многопользовательской 3d-game.html). Я объясню, как использование WebSockets можно оптимизировать, чтобы конкурировать с UDP. В той же строке, которую я дал в HTML5DevConf: «Больше, чем просто веб-сокеты для многопользовательских игр и совместной работы в режиме реального времени» (http://blog.lightstreamer.com/2013/12/html5devconf-more-than-just-websockets .html). –

+0

Спасибо, я проверю это. – riosteyn

ответ

1

Вы можете создать или использовать серверный компонент, который будет поддерживать каналы данных WebRTC; с точки зрения браузера/клиента, это будет просто другой партнер.

Строго говоря, каналы данных WebRTC не основаны на UDP, а основаны на SCTP; но на практике они обеспечивают гибкость, необходимую для обмена данными в реальном времени (например, с возможностью настройки соединений, которые обеспечивают низкую задержку по сравнению с надёжностью).

Пример компонента серверного использования данных каналов будет https://www.npmjs.com/package/rtc-dcstream

 Смежные вопросы

  • Нет связанных вопросов^_^