Реактивная и параллельная игра между двумя кивками по сети - PullRequest
0 голосов
/ 10 февраля 2019

Я реализовал игру для двух игроков в понг, используя scala и scalajs, софар. Я могу играть за двух игроков, используя 4 разные клавиши, и теперь я хочу запустить его между двумя компьютерами по сети. Есть предложения для реактивных и одновременных инструментовтот ?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Если вы пытаетесь сделать это одноранговым между двумя ПК, основной проблемой будет обнаружение и настройка соединения.По соображениям безопасности трудно открыть сокет непосредственно на клиентском компьютере, особенно если они оба находятся за стандартными потребительскими маршрутизаторами.Вам может понадобиться сервер для запуска процесса обнаружения (или один из компьютеров должен открыть свой брандмауэр), и вам может оказаться проще маршрутизировать связь через сервер.

Здесь нет простых ответов, и этоСам по себе Scala.js - это не просто уроки, извлеченные из создания одноранговых игр в далеком прошлом.Сетевой стек - это сложная часть ...

0 голосов
/ 10 февраля 2019
  1. Возможно, вам понадобится Реактивные потоки и их протокол противодавления, чтобы не сбить сервер, когда клиенты отправляют слишком много запросов.По сути, вы сможете указать разные стратегии для вашего сервера событий.

  2. Web-Socket также пригодится.Ваш код Scala.js будет отправлять сообщения на сервер через WS

Я бы порекомендовал Akka-Streams: https://doc.akka.io/docs/akka-http/current/server-side/websocket-support.html

или Http4s-fs2 https://github.com/http4s/http4s/blob/master/examples/blaze/src/main/scala/com/example/http4s/blaze/BlazeWebSocketExample.scala

...