Swoole学习笔记(五):多协议多端口

swoole中,接受数据流处理时,需要将数据流切分成小包才能进行功能的实现,以下为常见的几个协议

1.EOF协议
EOF协议是用一组固定的,不会出现在数据内的字符作为数据分割的标记,简称EOF协议
EOF协议的格式如下:


DATA    |   EOF     |   DATA    |   EOF     |   ......

2.固定包头协议
在数据部首加上一组固定格式的数据作为协议头,称为固定包体协议
协议头的格式必须固定,其中需要标明后续数据的长度
长度字段格式只支持"S,L,N,V"和"s,l,n,v"


        header |     length       |     header  |     data      |

固定长度 | 数据长度 | 数据头部 | 数据内容 |


3.函数实现
Swoole-1.8.0新增了对多端口混合协议的支持。Server可以监听多个端口,每个端口都可以设置不同的协议处理方式(set)和回调函数(on)。SSL/TLS传输加密也可以只对特定的端口启用。

函数原型:
swoole_server_port swoole_server->(string $host, int $port, int type)
其中,$type字段支持一下6种格式:
SWOOLE_TCP / SWOOLE_SOCK_TCP ipv4 TCP协议
SWOOLE_TCP6 / SWOOLE_SOCK_TCP6 ipv6 TCP协议
SWOOLE_UDP / SWOOLE_SOCK_UDP ipv4 UDP协议
SWOOLE_UDP6 / SWOOLE_SOCK_UDP6 ipv6 UDP协议
SWOOLE_UNIX_DGRAM UnixSocket 数据包格式
SWOOLE_UNIX_STREAM UnixSocket 数据流格式

注意,新创建的端口需要设置协议参数,否则会复用swoole_server的协议解析方式

监听端口的swoole_server_port对象,可以调用set和on方法:
未调用set方法,设置协议处理选项的监听端口,默认继承主服务器的设置
未调用on方法,设置回调函数的监听端口,默认使用主服务器的回调函数

不同监听端口的回调函数,仍然是相同的Worker进程空间内执行

转载于:https://blog.51cto.com/9443450/2388742

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值