Swoole+websocket多人在线游戏示例

利用Swoole,可以使用PHP来开发Websocket服务器,实现多人在线游戏。本文通过一个最简单的摇骰子游戏来介绍Server端(由PHP+Swoole实现)和Client端(由H5+Websocket实现)。

基本原理

由Swoole创建Websocket服务,用户的所有操作(登录、准备、摇骰子等)通过Websocket发送到服务器。游戏状态的改变(用户所有操作、游戏开始、用户摇骰子结果、游戏结束、游戏结果等)也通过Websocket发送到客户端。

流程

游戏初始化

用户连接到服务器即实现了登录。服务器维护在线用户列表。用户登录或退出都push给所有客户端。

所有用户点击“准备”后,游戏开始。用户点击“摇啊摇”后,服务器为该用户生成点数。所有用户都生成点数后,得到点数最大的用户。游戏结束。

本文忽略了房间的设置,把所有用户都统一到一个房间。

运行

下载源码,解压到服务器。下载地址:https://pan.baidu.com/s/1bpEeBNL

运行Server

php Server.php

然后用浏览器访问index.html即可。可以同时用不同浏览器打开,以实现多用户同时在线的效果。部分运行截图如下:

1.服务器运行状态

2.用户准备中

3.用户摇骰子

4.游戏结束

发表评论

电子邮件地址不会被公开。

*