现在各大视频网站或直播类型的网站 ,弹幕功能随处可见
想其实现不外乎以下几步
1.用户发送弹幕到服务器
2.服务器接收到消息将消息存储
3.客户端和服务器通信拿到弹幕数据
4.将弹幕数据在页面显示
那么重点来了。就是第3步客户端和服务器的通信方式
开始博主如果用ajax轮循来实现可以吗,可以(但会比较复杂,ajax请求为无状态协议),而且轮循有间隔会有信息不及时的问题。
还有就是只能应该小数据。无法满足大数据的要求
所以博主就选择了socket通信来实现
研究了一下php的swoole扩展(博主是phper)发现其功能相当强大
来自swoole官网的一段话:
Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。
除了异步IO的支持之外,Swoole为PHP多进程的模式设计了多个并发数据结构和IPC通信机制,可以大大简化多进程并发编程的工作。其中包括了并发原子计数器,并发HashTable,Channel,Lock,进程间通信IPC等丰富的功能特性。