长连接使用前需解决的问题

长连接、swoole、easyswoole

  • 部署安装
  • websocket、socket、mqtt服务部署及联调
  • 不同协议中的交互 硬件使用mqtt、APP使用socket
  • 每次传输的数据如何转入到对应的逻辑方法处理(http中每个URL可以对应到指定的方法)
  • 传输数据可用的数据类型有几种(二进制、json)
  • 连接认证、数据加密
  • 多进程、多线程、协程
  • 分布式部署

easyswoole

官方安装文档

安装部分

本次使用的docker安装部署、官方已给出dockerfile、但注释了 Install easyswoole下面的三行、在build的时候先不安装

build好后启动并进入镜像安装easyswoole. composer require easyswoole/easyswoole=3.x-dev

{
    # composer require  的时候不会出现下面autoload部分需要自己添加后执行 composer dumpautoload 更新命名空间映射
    "autoload": {
        "psr-4": {
            "App\\": "App/"
        }
    },
    "require": {
        "easyswoole/easyswoole": "3.x-dev"
    }
}

如果出现下面代码、并检查路径及文件名都正确的话在检查composer.json中autoload空间映射是否正确.

[Uncaught Error: Class 'App\WebSocket\WebSocketParser' not found in /var/www/code/EasySwooleEvent.php:37

websocket服务调试

websocket部署测试-官方例子

服务端使用官方文档例子, websocket客户端使用 在线调试

{"action":"hello","content":"easyswoole"} 发送的json字符串, 如果json字符不规范可以f12打开Console然后使用JSON.stringify({action: 'hello', content: 'easyswoole'})

手动部署

swoole 部署错误

需手动安装包: composer require easyswoole/socket