如何创建 cleint/server 个应用程序
How to create cleint/server applications
一段时间以来,我一直在尝试在网站上制作多人游戏应用程序。我想从一个基本的聊天系统开始。我做了一个,但它真的很慢。在 HTML 页面上,它通过 AJAX 将消息发送到 PHP 应用程序,该应用程序将其保存到文本文件中。然后回到 HTML 文件,它每 3 秒不断地检查文本文件。这是非常缓慢和不可靠的。所以我查找了更好的方法来做到这一点。我找到 Node.js 并将其与 Socket.io 和 express 一起使用以创建更快的聊天应用程序。但它只适用于本地主机,我不知道如何在网站上实现它。所以我一直在寻找并发现了 WebSockets。这太令人困惑了,而且似乎得不到支持。我很困惑为什么网站上的应用程序可以通过如此少的选项实时运行。这是怎么做到的?我错过了这样做的方法吗?如果你能帮助我,那就太好了。
- Socket.io 已经在后台使用 websockets。您的聊天应用程序不需要使用原始 websockets。
- 您使用 socket.io 和 node.js 服务器端的方式正确。
- 在浏览器中构建多人游戏对于初学者来说将是一项非常困难的任务。但这就是为什么学习很好!我建议使用图形库(快速 google 给了我这个:http://www.pixijs.com/)。
整体架构应该是这样的:
- 用户访问您的服务器并收到一个网页 (.html),其中包含他们玩游戏所需的 javascript 和 canvas。这是 "client-side",因为每个用户在其计算机上的 Web 浏览器上都是 运行。
- 该网页运行 javascript,它使用 socket.io 与 node.js 服务器通信。这就是"server-side"。服务器的工作是协调玩家数据(谁是谁,他们在游戏中的什么位置,谁在做什么等)并跟踪游戏状态。基本上,这就是游戏的真正所在,有点像服务器上的大富翁棋盘,而客户端实际上只负责 向玩家显示 棋盘(绘制它HTML5 canvas) 并将玩家输入发送到服务器。
教程:
- 使用 GOOGLE。尝试直接搜索 "javascript game tutorial"。尝试出现的每个教程。如果某件事需要一段时间才能起床 运行 然后放弃它并转移到另一个。
- 首先做一些简单的小事,直到您开始理解整个过程是什么样的。例如:https://developer.mozilla.org/en-US/docs/Games/Workflows/2D_Breakout_game_pure_JavaScript
- 还记得玩 Pong 之类的超简单游戏吗?首先尝试编写这样的游戏。顺便说一下,您的聊天系统是一个很好的开始,因为它涵盖了如何启动服务器和 运行、如何获取页面、如何发送数据的基础知识。
至于在其他人可以连接到的服务器上安装和 运行...看看这个:让你的朋友来你家并带上他们的笔记本电脑,启动你的 node.js 聊天服务器,告诉他们您的 IP 地址是什么,然后让他们在浏览器中转到“http://YOURIPADDRESS:8000”——他们将连接到您的 node.js 服务器!
在托管服务提供商上获得它 运行 有点复杂,在这个阶段可能不值得麻烦。稍后您将通过继续前进的方式了解更多相关信息。
Socket.IO 不仅适用于本地主机。您将需要获取服务器以 [=18=] 您的应用程序。我强烈建议暂时不要担心这块拼图,因为如果您是新手,它会有些复杂。准备好后回到这部分。
关于游戏开发,我推荐使用Phaser。它拥有您入门所需的一切和出色的文档。
一段时间以来,我一直在尝试在网站上制作多人游戏应用程序。我想从一个基本的聊天系统开始。我做了一个,但它真的很慢。在 HTML 页面上,它通过 AJAX 将消息发送到 PHP 应用程序,该应用程序将其保存到文本文件中。然后回到 HTML 文件,它每 3 秒不断地检查文本文件。这是非常缓慢和不可靠的。所以我查找了更好的方法来做到这一点。我找到 Node.js 并将其与 Socket.io 和 express 一起使用以创建更快的聊天应用程序。但它只适用于本地主机,我不知道如何在网站上实现它。所以我一直在寻找并发现了 WebSockets。这太令人困惑了,而且似乎得不到支持。我很困惑为什么网站上的应用程序可以通过如此少的选项实时运行。这是怎么做到的?我错过了这样做的方法吗?如果你能帮助我,那就太好了。
- Socket.io 已经在后台使用 websockets。您的聊天应用程序不需要使用原始 websockets。
- 您使用 socket.io 和 node.js 服务器端的方式正确。
- 在浏览器中构建多人游戏对于初学者来说将是一项非常困难的任务。但这就是为什么学习很好!我建议使用图形库(快速 google 给了我这个:http://www.pixijs.com/)。
整体架构应该是这样的:
- 用户访问您的服务器并收到一个网页 (.html),其中包含他们玩游戏所需的 javascript 和 canvas。这是 "client-side",因为每个用户在其计算机上的 Web 浏览器上都是 运行。
- 该网页运行 javascript,它使用 socket.io 与 node.js 服务器通信。这就是"server-side"。服务器的工作是协调玩家数据(谁是谁,他们在游戏中的什么位置,谁在做什么等)并跟踪游戏状态。基本上,这就是游戏的真正所在,有点像服务器上的大富翁棋盘,而客户端实际上只负责 向玩家显示 棋盘(绘制它HTML5 canvas) 并将玩家输入发送到服务器。
教程:
- 使用 GOOGLE。尝试直接搜索 "javascript game tutorial"。尝试出现的每个教程。如果某件事需要一段时间才能起床 运行 然后放弃它并转移到另一个。
- 首先做一些简单的小事,直到您开始理解整个过程是什么样的。例如:https://developer.mozilla.org/en-US/docs/Games/Workflows/2D_Breakout_game_pure_JavaScript
- 还记得玩 Pong 之类的超简单游戏吗?首先尝试编写这样的游戏。顺便说一下,您的聊天系统是一个很好的开始,因为它涵盖了如何启动服务器和 运行、如何获取页面、如何发送数据的基础知识。
至于在其他人可以连接到的服务器上安装和 运行...看看这个:让你的朋友来你家并带上他们的笔记本电脑,启动你的 node.js 聊天服务器,告诉他们您的 IP 地址是什么,然后让他们在浏览器中转到“http://YOURIPADDRESS:8000”——他们将连接到您的 node.js 服务器!
在托管服务提供商上获得它 运行 有点复杂,在这个阶段可能不值得麻烦。稍后您将通过继续前进的方式了解更多相关信息。
Socket.IO 不仅适用于本地主机。您将需要获取服务器以 [=18=] 您的应用程序。我强烈建议暂时不要担心这块拼图,因为如果您是新手,它会有些复杂。准备好后回到这部分。
关于游戏开发,我推荐使用Phaser。它拥有您入门所需的一切和出色的文档。