再发一个HTML5+WebSocket+PHP多进程 多人在线小蝌蚪游戏[强烈推荐]

      在这个游戏中,你会化身一个小蝌蚪,然后在浩瀚的宇宙中游弋,时不时会看到和你同样的小蝌蚪游过来,这时候你可以和她打招呼或者聊天,非常有趣。

游戏截图:

      首先说明:前端部分不是我开发的,前端使用的是国外一个开源代码,地址:https://github.com/danielmahal/Rumpetroll。这个代码库中包含了前端代码和ruby的后端代码。

      后端代码:我用PHP基于workerman框架进行了重写,花费了大概2个小时左右完成(嘿嘿,用PHP基于workerman开发这类socket程序还是非常快的),完全替换了原有的ruby后端。

      在这里workerman不仅提供了游戏后台WebSocket服务,而且还担当起Web Server的角色,非常强悍。

      游戏原理:客户端使用HTML5绘画出小蝌蚪,当用户点击屏幕时,自己的小蝌蚪会向着鼠标方向游动,游动的过程中,通过websocket将自己的坐标数据发送给workerman,workerman接收到坐标数据后,通过其它蝌蚪的websocket连接广播给所有其它小蝌蚪,其它小蝌蚪收到广播的坐标数据后绘制这些蝌蚪,大家就可以看到其它蝌蚪的状态了。聊天也是同样的原理,就是把聊天内容广播给其它蝌蚪。

      小提示:你的浏览器需要支持HTML5才能体验,如果你的手机浏览器也支持HTML5的话(例如手机火狐浏览器),也可以用手机体验,那么你就可以用手机通过小蝌蚪和PC浏览器玩家交互了。


游戏文档

游戏代码下载页面

游戏DEMO页面

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
处理怎么做? 在Python中,使用第三方库`gevent-websocket`可以方便地实现WebSocket多进程处理。具体操作步骤如下: 1. 安装`gevent-websocket`库: ``` pip install gevent-websocket ``` 2. 导入`WebSocketServer`类和`WebSocketApplication`类: ```python from geventwebsocket import WebSocketServer, WebSocketApplication ``` 3. 定义WebSocket应用程序: ```python class MyWebSocketApplication(WebSocketApplication): def on_open(self): print("WebSocket连接已经建立") def on_message(self, message): print("WebSocket接收到消息:", message) self.ws.send("服务器已经接收到您的消息:" + message) def on_close(self, reason): print("WebSocket连接已经关闭") ``` 上面的代码定义了一个名为`MyWebSocketApplication`的WebSocket应用程序,它继承了`WebSocketApplication`类,覆盖了`on_open`、`on_message`和`on_close`三个方法。 `on_open`方法在WebSocket连接建立后被调用,可以在这个方法中进行初始化操作。 `on_message`方法在接收到客户端发送的消息后被调用,可以在这个方法中对消息进行处理并返回响应。 `on_close`方法在WebSocket连接关闭后被调用,可以在这个方法中进行清理操作。 4. 启动WebSocket服务器: ```python WebSocketServer(('0.0.0.0', 8000), MyWebSocketApplication).serve_forever() ``` 上面的代码启动了一个WebSocket服务器,监听在本机的8000端口上,使用`MyWebSocketApplication`作为WebSocket应用程序。 这个服务器将会在多个进程中运行,每个进程都可以处理客户端发送的消息,并向客户端返回响应。 可以使用类似`gevent`或`multiprocessing`的库来启动多个进程,并在每个进程中启动一个WebSocket服务器来获得更好的并发能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值