TCP连接服务器发送给客户端有时候发不出去,但客户端数据能发到服务器

l1234564555

之前用的UDP协议,出现这个,没什么规律,可能客户端就好了。
换成TCP协议了,客户端的内容完全正常能到达服务器端,但是服务器要发回去什么数据,可能一段时间内持续收不到,应该是没有发出去。但是此期间,客户端数据能完全到达服务器。不知道是什么情况,心累
 
发送接收用的同进程,一般没问题,就是有时候会出现,收不到服务器的数据

阅读 4631
3个回答

walkor

服务端启动界面贴下,服务端和客户端代码贴下。

l1234564555

客户端是一个硬件设备,连接服务器,才会持续发心跳包,没什么别的,收到数据就会打印出来,发送的心跳包服务器能收到,同时服务器对心跳包的回复,设备也能收到。
 
那么,期间让服务端发数据给客户端可能收不到,
 
worker进程开了4个,http进程开了2个,浏览器调用http进程,使其发送channel数据,worker进行比对数据库里面存的,客户端用的是哪个worker号,相同的,则读取然后推送用的这个函数$connection->send($backmsg);

[attach]1335[/attach]

[attach]1334[/attach]

下图是推送给客户端的做法,服务端对客户端的回复也是是用的这个函数
 
$connection->send($backms);

[attach]1336[/attach]
 

  • 暂无评论
walkor

抓包看下吧,看下服务器是否有发送数据给客户端。
排除客户端bug
http://doc.workerman.net/debug/tcpdump.html

  • 暂无评论