设备:
web端
投票服务器
主服务器
app端
流程:
1.在直播场景的时候,web端发起投票(一个字典,包括标题,选项,图片等内容),即把数据保存在主服务器数据库,然后把该数据发送给投票服务器(数据大小限制在8K,因为udp网络层给链路层传输的时候大于8k很容易丢包。而setsockopt函数改变的缓冲区只是在网络层修改)。web后端与投票服务器建立udp连接;
2.app端进入直播界面即开始与投票服务器建立tcp连接,监控该连接是否有数据。一旦有数据,及时获取数据,并把该数据展现给app界面,然后把投票结果通过api传给主服务器数据库;
3.投票服务器:
数据:通过udp与web端连接获取数据
对象:通过tcp与多个app客户端建立连接(连接限制在1000个)
遍历对象,给每个对象发送封装的数据,封装数据为:字符型数据长度(4字节,比如0340为340个字节)+ 数据
线程占用的是栈空间,全局变量占用堆空间,一般情况下不会堆栈溢出