使用PHP监控活动服务器连接


Monitor active server connections using PHP

我希望能够跟踪到服务器的活动连接。特别是,我想跟踪用户花在流媒体MP3文件上的时间,这样我就可以使用这些信息来统计用户花在听单个曲目上的时间等。由于PHP脚本没有交互(或者至少目前没有),我想知道是否有一种方法可以轮询服务器以查找当前连接的IP列表?也许另一种选择是使用readfile通过PHP脚本处理流?有什么想法吗?感谢:)

有效地做到这一点的唯一方法是使用readfile()通过PHP脚本流式传输文件。使用这种方法,您可以计算发送的字节数,并猜测客户端播放了多少。

然而,(如果没有衡量客户端的东西)不可能知道播放了什么。不同的玩家缓冲数据的方式不同,甚至这在网络条件下也是可变的。您只能知道您向客户端发送了多少数据。通常对于分析来说,这是足够的信息,因为它通常以与正在播放的其他曲目进行比较的方式使用。您可以使用工具(如FFMPEG)来确定文件的音频长度,并将其除以发送的文件中数据的百分比。这对于可变比特率轨道来说不太准确,但将是让你进入大致水平的最有效方法。

使用构建PHP函数,您无法管理此任务但是有一些工具可以检索这些信息。

具体来说,请查看netstat。在Linux上,访问man(8)获取netstat。