# TCP配置
配置文件:`resources/application.yml` 文件
```yml
esd:
port:
tcp:
host: 0.0.0.0
port: 8084
open_http_protocol: false
open_websocket_protocol: false
sock_type: 1
package_eof: '\r\n'
open_eof_check: true
pack_tool: 'ESD\Plugins\Pack\PackTool\StreamPack'
```
之前也讲过,下划线和驼峰同样效果。偷懒用驼峰。
### host
TCP服务监听的主机名,0.0.0.0 标识服务器的任何地址
### port
TPC服务监听的端口
### open_http_protocol
TCP服务,此项需为false
### sock_type
1为TCP,与常量 `SWOOLE_SOCK_TCP` 相同。3为IPV6 TCP ,与常量`SWOOLE_SOCK_TCP6` 相同。
### package_eof
与 `open_eof_check` 或者 `open_eof_split` 配合使用,设置EOF字符串。
### open_eof_check
打开`EOF`检测,此选项将检测客户端连接发来的数据,当数据包结尾是指定的字符串时才会投递给Worker进程。否则会一直拼接数据包,直到超过缓存区或者超时才会中止。当出错时底层会认为是恶意连接,丢弃数据并强制关闭连接。
### open_eof_split
启用`EOF`自动分包。当设置`open_eof_check`后,底层检测数据是否以特定的字符串结尾来进行数据缓冲。但默认只截取收到数据的末尾部分做对比。这时候可能会产生多条数据合并在一个包内。
### pack_tool
解包、封包工具指定的类, 方法 `pack`封包,`unPack`解包;`encode`编码数据,`decode`解码数据。可根据范例写符合者目开发的包工具。
- `open_eof_check` 只检查接收数据的末尾是否为 `EOF`,因此它的性能最好,几乎没有消耗
- `open_eof_check` 无法解决多个数据包合并的问题,比如同时发送两条带有 `EOF` 的数据,底层可能会一次全部返回
- `open_eof_split` 会从左到右对数据进行逐字节对比,查找数据中的 `EOF` 进行分包,性能较差。但是每次只会返回一个数据包
参考文档:
https://wiki.swoole.com/wiki/page/285.html
https://wiki.swoole.com/wiki/page/286.html
https://wiki.swoole.com/wiki/page/421.html
- 1 介绍
- 2 安装
- 2.1 环境
- 2.2 安装
- 3 配置
- 3.1 Server配置
- 3.2 端口配置
- 3.3 项目结构
- 3.4 内核优化
- 4 服务
- 4.1 HTTP服务
- 4.1.1 路由
- 4.1.1.1 静态路由
- 4.1.1.2 路由定义
- 4.1.1.3 路由方法
- 4.1.1.4 路由分组
- 4.1.1.5 资源路由
- 4.1.1.6 端口作用域
- 4.1.1.7 异常处理
- 4.1.1.8 跨域请求
- 4.1.1.9 路由缓存
- 4.1.2 控制器
- 4.1.2.1 控制器初始化
- 4.1.2.2 前置后置操作
- 4.1.2.3 跳转与重定向
- 4.1.2.4 异常处理
- 4.1.3 请求
- 4.1.3.1 请求对象
- 4.1.3.2 请求信息
- 4.1.3.3 REQUEST消息
- 4.1.3.4 RESPONSE消息
- 4.1.3.5 STREAM消息
- 4.1.3.6 URI信息
- 4.1.3.7 处理上传文件
- 4.1.3.8 验证器
- 4.2 Websocket服务
- 4.2.1 Websocket配置
- 4.2.2 Websocket路由
- 4.3 TCP服务
- 4.3.1 TCP配置
- 4.3.2 TCP路由
- 4.3.3 协程处理案例
- 5 插件
- 5.15 Yii-PDO插件
- 5.15.1 PDO 连接MySQL Mariadb
- 5.15.2 PDO连接PostgreSQL
- 5.15.3 PDO连接GreenPlum
- 5.15.4 PDO连接Oracle
- 5.15.5 PDO连接Cubrid
- 5.15.6 PDO连接SQL Server
- 6 概念
- 7. Yii- I18N国际化
- 8. 模型 Yii-Model
- 8.1 快速创建模型
- 8.2 快速创建多个模型
- 8.3 核心验证器 Core Validators
- 9. 配合数据库工作
- 9.1.数据库访问对象 Database Access Objects
- 9.2 查询构造器 Query Builder
- 9.3 活动记录 Active Record