用workerman做一个简单的即时通讯功能①

最近有个想法 ,打算在后台加一个即时聊天的功能,在选择用swoole和workerman的时候考虑了一下,发现还是workerman比较好,这个纯粹用php开发的用起来还是比较舒服,想要修改源码底层也相对容易,不像swoole一样需要C的编程能力。其实更大的原因是因为workerman可以直接引入安装、启动服务即可,而swoole还需要安装swoole插件到php环境,相对来说workerman操作就方便多了,所以选择用workerman做。


测试效果:

微信截图_20210721162217.png


还是比较舒服的吧,界面UI自己可以进行优化调整,实现起来也比较简单。


没错!是用workerman-chat这个框架组件的,拿来根据自己需要调整就可以了。


workerman-chat是一个以workerman作为服务器容器,使用PHP开发的基于Websocket协议的一个可分布式部署的聊天室框架。

workerman-chat采用gateway workers 进程模型。gateway只负责网络IO,全异步非阻塞,每个gateway进程都可以同时接受上万客户端连接。 workers采用的是PHP开发者所熟悉的同步模型,并提供了开发者基本的接口 onConnect、onMessage、onClose、sendToClient、sendToAll等方法。 开发者只要在onConnect、onMessage、onClose三个方法中添加上自己的业务逻辑即可,开发维护非常简单。

由于采用的是gateway workers 进程模型,gateway和workers之间是无状态的,gateway和workers可以分别部署在不同的物理机上,所以扩容和升级都非常方便。 workerman-chat也非常适合游戏后台开发。

看看特性吧:

1.使用PHP开发

2.PHP多进程

3.gateway workers进程模型

4.支持libevent事件轮询库,支持高并发

5.默认使用Websocket协议,更小带宽,更好性能

6.支持分布式部署,可横向扩容

7.客户端跨浏览器支持(需要浏览器支持html5或者flash)

8.多房间支持

9.支持私聊

10.支持心跳检测

11.同样非常适合游戏后台开发

=================================

Linux环境安装启动

首先:参考手册检查/安装workerman环境

1、下载workerman-chat,并解压缩到任意目录

2、启动workermanphp start.php start -d

Windows版本安装启动

1、下载workerman-chat,并解压缩到任意目录

2、参考这里设置PHP环境变量

3、双击start_for_win.bat运行

4、浏览器访问http://127.0.0.1:55151 (如果服务端不在本地,请把127.0.0.1改成实际服务端ip或者域名)

5、关闭终端停止

说明

本聊天室业务逻辑非常简单,业务逻辑都在文件./Applications/Chat/Events.php中,开发者可以随意修改,比如增加表情等功能

===================================


就简单几步拥有了这个高性能的即时通讯框架,上面标红的文件就是经常需要自定义修改的地方。


这个demo我简单修改了,增加了调试日志(之前是在终端显示日志的,现在保存到log目录),需要的可以点击下面的附件下载:


workerman-chat.zip


评论/留言