你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
请问我给客户端发送一个长字符串被截断成两截是个什么原理。。。客户端收到两次数据,拼起来是完整数据。
没有找到相关结果
秀才
赞同来自:
是在1440字节截断的
walkor
tcp是流式的,一小段一小段传输给服务端的,并且tcp流没有数据边界,不知道哪里是结束,服务端每收到一小段数据后就触发消息事件。这种情况需要有个应用层协议区分tcp流哪里是开始,哪里是结束。例如http应用层协议是在http头部放了一个Content_length:xxx 表示这个包到底有多长,服务端就知道这个包的长度,如果读取的长度不够,就继续等待数据,直到读取足够的长度才触发onMessage事件。worker man支持应用层协议设置,也可以定义自己的应用层协议,可以去看下workerman手册协议部分
要回复问题请先登录或注册
2 个回复
秀才
赞同来自:
是在1440字节截断的
walkor
赞同来自:
tcp是流式的,一小段一小段传输给服务端的,并且tcp流没有数据边界,不知道哪里是结束,服务端每收到一小段数据后就触发消息事件。这种情况需要有个应用层协议区分tcp流哪里是开始,哪里是结束。例如http应用层协议是在http头部放了一个Content_length:xxx 表示这个包到底有多长,服务端就知道这个包的长度,如果读取的长度不够,就继续等待数据,直到读取足够的长度才触发onMessage事件。worker man支持应用层协议设置,也可以定义自己的应用层协议,可以去看下workerman手册协议部分