使用Swoole+PHP开发的IM

使用Swoole+PHP开发的IM,第1张

(一)扩展安装

    本demo需要的扩展有Swoole、MongoDB、Redis

(二)详细步骤

1、Client在进行长连接 *** 作时会在链接后面跟上用户id,Server在接受到用户id后会将此id与线程id进行绑定,并存入Redis中。

2、Client触发send事件后,会将此消息追加到本地的消息列表中(此时为消息的发送方)。Server在触发onMessage事件后首先会将消息内容存入DB,然后再根据此消息接收者的用户id找到对应的线程id并进行push *** 作。

3、Client触发onmessage事件后会拿到消息内容并将此内容追加到本地消息列表中。(此时为消息的接收方)

至此,IM的流程就大致梳理完了。

效果图如下:

   

项目源码: >

我跟你讲用PHP作为游戏服务器的话,就不得不提比较火的Swoole

Swoole可用来开发PHP的高性能高并发TCP/UDPServer。业务逻辑部分使用多进程同步阻塞方式来运行。这样既保证了Server能够应对高并发和大量TCP连接。又保证业务代码仍然可以简单的编写。

PHP+Swoole创建Websocket服务,用户的所有 *** 作通过Websocket发送到服务器。游戏状态的改变也通过Websocket发送到客户端。

虎牙直播APP基于Swoole实现了TCP长连接PUSH服务,日均活跃200万用户。TCP并发连接数超过40万,收发消息数峰值超过10万条每秒。你搞个游戏支持同时有20w+的在线是没问题的。

Swoole作为一个高级phper使用的技术,初级程序员缺少通信、Unix系统编程、网络通信编程、协程异步io等知识掌握,难免学习上遇到困难

声明:最反感什么一键安装!方法很多,首先下载解压PHP,最好环境变量配上不配cli模式会有一定影响,下来1apachePHP模块直接引入PHP模块配置好虚拟主机2iis图形 *** 作在PHP模块找到对应版本sapi文件3PHP-cgi启动cgi服务器nginx代理执行4类似node不需要任何web服务器直接在web目录下PHP-S前提是PHP54以上版本。5第四种方式获取客户端头信息存在故一般结合nginx通过nginx获取头信息再反向代理。建议用第三张方式,需要注意的是之前Windows系统需要定期重启cgi否则会502,补充一点Linux下webserver会更多如lig>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10777077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存