【发布时间】:2020-05-06 16:40:22
【问题描述】:
我正在构建一个小型的两人游戏应用程序。将数据从一个玩家实时发送到另一个玩家是非常重要的,因为套接字看起来很有希望。
我在一些地方读到 javascript 不支持多线程。那么双方通信的可能解决方案是需要两个线程来并行管理 C1->C2 和 C2->C1 通信。
我的高级架构看起来像
如何在一个网页中通过javascript管理三个线程?一个用于 C1 到 C2 的消息传输,第二个用于 C2 到 C1 的消息传输,第三个用于用户界面?
【问题讨论】:
-
单线程将完成所有三个任务。这里没问题,用socket.io就行了。
-
@ChrisG 它在实际执行中是如何工作的?幕后发生了什么?我在 Java 中从未听说过这样的事情。
-
你熟悉 javascript 事件循环吗?
-
没有。那是什么?我听说过点击、按键等事件。
-
事件循环是浏览器用来决定在绘制页面和运行各种 javascript 之间接下来运行哪一段代码的核心机制。这些点击和按键(以及套接字事件)被添加到队列中,并在下次事件循环到达它们时运行。你可以用谷歌搜索更多信息,或者如果你有半小时的时间,这里有一个关于这个主题的视频:youtube.com/watch?v=cCOL7MC4Pl0
标签: javascript html multithreading web communication