我使用 scala 和 scalajs 实现了两个玩家的乒乓球游戏,到目前为止,我可以使用 4 个不同的键作为两个玩家玩,现在我希望通过网络在两台 PC 之间运行它。对反应式和并发工具的任何建议?
-
也许,当客户端发送太多请求时,您需要反应流及其背压协议来避免服务器崩溃。基本上,您将能够为服务器事件使用者指定不同的策略。
-
Web-Socket也会很方便。您的 Scala.js 代码将通过 WS 向服务器发送消息
我会推荐Akka-Streams:https://doc.akka.io/docs/akka-http/current/server-side/websocket-support.html
或 Http4s-fs2https://github.com/http4s/http4s/blob/master/examples/blaze/src/main/scala/com/example/http4s/blaze/BlazeWebSocketExample.scala
如果您尝试在两台PC之间进行点对点操作,则主要问题将是发现和建立连接。出于安全原因,很难直接打开客户端计算机的套接字,特别是如果它们都在标准消费者路由器后面。您可能需要服务器来启动发现过程(或者其中一台 PC 需要打开其防火墙(,并且您可能会发现通过服务器路由通信更容易。
这里没有简单的答案,这本身也不是Scala.js的事情 - 只是从遥远的过去构建点对点游戏中吸取的教训。网络堆栈是困难的部分...