网络上两个点之间的反应性和并发游戏

时间:2019-02-10 08:59:05

标签: scala akka scala.js stun ice

我使用scala和scalajs实现了两个玩家的Pong游戏,到目前为止,我可以使用四个不同的键作为两个玩家玩,现在我希望通过网络在两台PC之间运行它。有关反应式和并行工具的任何建议那?

2 个答案:

答案 0 :(得分:1)

  1. 也许,当客户端发送太多请求时,您可能需要Reactive Streams及其背压协议才能使服务器不崩溃。基本上,您将能够为服务器事件使用者指定不同的策略。

  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

答案 1 :(得分:1)

如果您要在两台PC之间进行点对点,则主要问题将是发现并建立连接。出于安全原因,很难直接打开客户端计算机的套接字,尤其是当它们都在标准用户路由器后面时。您可能需要一台服务器来启动发现过程(或者其中一台PC需要打开其防火墙),并且可能会发现更容易通过服务器路由通信。

这里没有简单的答案,这本身不是Scala.js的事情,而只是从遥远的过去构建对等游戏中学到的经验教训。网络堆栈是最困难的部分...