关于局域网内的1对多通信(Socket)
千年壹契 2018-05-10 10:40:06 大概这样一个DEMO:
PC机,PAD主机 ----以下简称PADM, N个PAD---以下简称PADC
PADM 与 PC机建立Socket通信,并向PC发送H264视频流数据
PC机得到数据后,转发给PADC,PADC展示 PAD主机投放的内容。
方案:PC机建立Socket服务,PADM和PADC连接服务。由PADM发送数据,PC服务负责转发。所有PADC在建立连接的时候会有一个队列,用于存储转发数据,当PC接收到H264流之后,直接仍到所有PADC链接的队列里面,链接里面开了一个线程,将队列数据发送出去。
最初的时候,只有几台PADC,一切正常,基本同步显示PADM的发送数据,但随着PADC的增多,网络上行 撑不住了。一直处于发送数据状态,且占满了网络。考虑了压缩H264字节流之后再转发,但H264已经压缩过了,30000个字节的包最多能压缩成28000字节(平均下来每个包能压缩 200~500 个字节)
因为产品要求即时,且在同一局域网内,所以没有选择客户端主动下拉的方案(直播就是主动下拉)。
求与大神讨论一下优化方案和其他解决方案 同发展 共进步