当前位置:   article > 正文

10分钟内可视化开发PHP-WebSocket服务_php websocket服务器

php websocket服务器

前言

Swoole的出现让开发场景变得更丰富,支持编写高性能高并发的 TCP、UDP、 WebSocket 等服务,让 PHPer不再局限于 Web 领域,与此同时也增加了开发者学习成本,有很多特性都需要在开发中额外调试,否则经常会遇到各种“坑”,为了让开发者回归需求场景本身,高效、高质量实现业务,今天我们就用ViewSwoole低代码平台演示快速实现WebSocket服务。

Step 1 创建项目

进入ViewSwoole平台,点击“开始使用”注册/登录平台后创建一个项目,默认项目参数不用改动,其中接收消息模型默认为“单独接收消息(一对一)”,可以切换“群体接收消息(一对多)”实现类群聊功能。

Step 2 创建任务
  • 在刚才创建的项目下创建一个任务,任务类型选择“WebSocket服务器“,默认项目参数不用改动,其中端口号默认为80,如果80端口被占用,需要改为如:9501,其他参数如“ 是否创建连接成功容器 ”、“ 是否创建Task异步任务 ”等可根据需求自行选择是否创建。

Tips:Task异步任务适用于独立运行的慢业务,如服务器接收到消息后需要触发其他的CPU密集型运

算业务,但不影响消息本体的接收与发送;

  • 点击“查看源码”可以对任务源码进行预览:

Step 3 下载项目/编辑/部署

在项目列表中下载项目.zip包,并部署、解压到如阿里云ECS服务器指定站点中,用编辑器打开在ViewSwoole平台中创建的WebSocket服务器任务文件,如WS.php,参考下图进行编写代码:当接收到客户端消息时,发送加工过的数据给客户端。

Step 4 运行WebSocket服务器

在命令行进入项目,输入php WS.php启动WebSocket服务器。

Step 5 编辑/执行WebSocket客户端
  • 在项目的demo目录下,可以找到websocket_demo.html客户端文件,用编辑器打开修改IP为公网IP,端口为WebSocket服务器端口,如9501。

Tips:如果项目是HTTPS请求,请在项目配置中开启SSL并配置证书、密钥,更改公网ws://ip:port

为wss://证书域名:port

  • 打开浏览器输入:公网IP 或 域名/demo/websocket_demo.html执行WebSocket客户端,此时客户端会收到服务器发送的数据,点击“发送消息”自己也会收到消息,一个完整周期的WebSocket客户端、服务器创建、运行完成。

Tips:因为websocket_demo.html发送数据的fd(客户端ID)写死为1,所以默认是自己收到消

息,实际开发业务中,值为对方用户的fd,此时对方就可以收到发送的消息了。

延伸说明:客户端连接成功时服务器端将userid与socket-fd进行关联缓存到Redis,每次发送数据通过服务器端查询对方的fd并组装对象字符串JSON.stringify({fd:fd})发送给服务器,如果不发送fd则默认fc为自己;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/634561
推荐阅读
  

闽ICP备14008679号