博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swoole学习笔记(五):多协议多端口
阅读量:7054 次
发布时间:2019-06-28

本文共 1011 字,大约阅读时间需要 3 分钟。

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

你可能感兴趣的文章
第四范式:来,一起玩转人工智能
查看>>
小猿圈Html5自学之WebSocket跨域问题解决
查看>>
金三银四,最详细的Android工程师面试大总结
查看>>
创业为什么选小程序?微信小程序3大优势与11大功能
查看>>
微软小冰称用户数超1亿8月将在北京开新品发布会
查看>>
Java 继承
查看>>
我发现了比特币现金的漏洞
查看>>
Java springboot B2B2C o2o多用户商城-分布式配置中心
查看>>
Java程序员学习Spring Boot,先看看这16条实践总结吧~
查看>>
Java b2b2c SpringBoot多用户商城系统(十):服务网关zuul初级篇
查看>>
并发编程-synchronized关键字大总结
查看>>
CentOS6.5 上部署 MySQL5.7.17 二进制安装以及多实例配置
查看>>
我的友情链接
查看>>
RAID
查看>>
SHELL学习——判断
查看>>
用Python做科学计算
查看>>
Unity3d中C#使用指针(Unsafe)的办法
查看>>
Win10下用Anaconda安装TensorFlow
查看>>
http_load压力测试工具
查看>>
我的友情链接
查看>>