## **logo ViewSwoole使用手册 ** [TOC] #### **前言** ViewSwoole是基于Swoole-novice(EASYLT旗下的Swoole框架)开发的低代码iPaaS平台,可以通过可视化配置帮助开发者快速实现进阶业务,目前可搭建多协程、WebSocket通信协议内存常驻服务,未来会支持更多业务类型,如多进程、TCP/UDP服务等,让开发者回归需求场景本身,高效、高质量实现业务。 #### **使用ViewSwoole** ------ ##### 团队注册 - 进入ViewSwoole官网:[https://www.viewswoole.com](https://www.viewswoole.com) - 点击【开始使用】进入ViewSwoole平台登陆页面 logo logo ##### 创建项目 - 点击【创建项目】对Swoole项目进行初始化配置进行创建 - 为了保证数据安全性,数据库连接参数请配置测试服参数或不预先进行配置; **Tips:请勿直接配置生产环境参数,后续可以下载项目后在src/config/config_db.php中进行配置;** logo logo ##### 创建任务 - 点击【项目任务】进入指定项目下的任务列表 - 点击【创建任务】选择任务类型,如WebSocket服务器并初始化配置进行创建; logo logo logo ###### 偏好预设 针对不同任务类型,可以灵活设置偏好,满足各种场景开发需求,如创建异步协程任务时: - 协程 -> 定时任务 -> Mysql/Redis -> cURL 代表在协程中自动生成定时任务**中包含**Mysql/Redis**中包含**cURL源码,以此类推; logo ##### 源码预览 - 点击每条任务右侧的【查看源码】可以对任务源码进行预览 logo logo ##### 下载项目 - 点击【下载】将项目打包下载到本地 logo - 打开项目.zip压缩包,可以看到刚才演示创建的WS任务已经自动添加到项目根目录中; logo ##### 运行项目 ###### 环境要求 - 保证**php**版本>=**7.0** - 保证**关系型数据库**采用**Mysql** - 保证**缓存数据库**采用**Redis** - 保证**Swoole**扩展版本>= **4.6.7**同时<**5.0** ###### 开始运行 - 将下载的.zip包解压到原有PHP项目中 - 对创建的任务文件进行编码,写入自己的业务,如WS.php: logo - 进入命令行,通过CLI模式运行服务,如:php WS.php,此时一个WebSocket服务器成功运行; logo ##### 后置说明 ViewSwoole是基于Swoole-novice新手包开发,所以下载的项目包含除了ViewSwoole目前支持服务以外的其他服务,如TCP等服务器、客户端业务,但是暂时需要自行实现,具体可以参考项目根目录中的《开发手册.md》进行开发。 #### **从0-1快速实现WebSocket服务** ------ ###### Step 1 创建项目 登录ViewSwoole平台,创建一个项目,默认项目参数不用改动,其中接收消息模型默认为“单独接收消息(一对一)”,可以切换“群体接收消息(一对多)”实现类群聊功能。 logo logo ###### Step 2 创建任务 在刚才创建的项目下创建一个任务,任务类型选择“WebSocket服务器“,默认项目参数不用改动,其中端口号默认为80,如果80端口被占用,需要改为如:9501,其他参数如“ 是否创建连接成功容器 ”、“ 是否创建Task异步任务 ”等可根据需求自行选择是否创建。 **Tips:Task异步任务适用于独立运行的慢业务,如服务器接收到消息后需要触发其他的CPU密集型运算业务,但不影响消息本体的接收与发送;** logo logo ###### Step 3 下载项目/编辑/部署 在项目列表中下载项目.zip包,并部署、解压到如阿里云ECS服务器指定站点中,用编辑器打开在ViewSwoole平台中创建的WebSocket服务器任务文件,如WS.php,参考下图进行编写代码:当接收到客户端消息时,发送加工过的数据给客户端。 logo ###### 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,此时对方就可以收到发送的消息了。** ```js 延伸说明:客户端连接成功时服务器端将userid与socket-fd进行关联缓存到Redis,每次发送数据通过服务器端查询对方的fd并组装对象字符串JSON.stringify({fd:fd})发送给服务器,如果不发送fd则默认fc为自己; ``` logo logo ------ ​ **感谢使用ViewSwoole 让开发更简单** ​ 官网:[https://www.viewswoole.com](https://www.viewswoole.com)