HTTP协议的特性:属于“请求-响应”模型,只有客户端发起了请求消息,服务器才能给出响应消息,没有请求,就没有响应;一个请求消息,服务器只能返回一个响应消息。有些特殊应用场景中,如“在线股票”、“聊天室”等,需要模拟呈现出“客户端不发请求,服务器也在不停的给出响应”效果,若使用HTTP协议,只能使用“AJAX+定时器”来近似的实现——心跳请求,问题:心跳过慢则信息的实效性差,心跳过快则服务器压力太大!
WebSocket协议的特性:属于“广播-收听”模型,只要客户端连接到服务器上,就不再断开(永久连接),一方可以不停的给对方发消息,...
手机锁屏以及退出后台webscoket会断开:js在手机熄屏后会中断,在唤醒之后js会继续执行。所以设置在js中的定时发送心跳包的功能在手机熄屏后就没法执行了。熄屏时间过长,这个时候链接就会被服务端强制断开,并且大部分手机在熄屏时,websocket连接就已经断开了。
解决办法: 使用H5提供的页面隐藏/显示API
document.addEventListener('visibilitychange',function() {
if(document.visibilityState == 'hidden') {
//记录页面隐藏时间
let hiddenTime = new Date().getTime()
} else {
let visibleTime = new Date().getTime();
//页面再次可见的时间-隐藏时间>10S,重连
if((visibleTime - hidden...
在PPStream退出后,后台仍运行PPSKernel.exe进程(之前叫PPSAP.exe),不用想也知道是在偷偷上传资源。之前的旧版本直接删掉PPSAP.exe,或将这个文件改名即可;新版本(V3.1.x)每次启动主程序后会再次验证此文件,发现文件不存在或被修改会报错,点确定后直接下载新版的安装程序并重新安装,还不能关闭和取消。说实话,这个有点流氓性质。在使用PPStream观看影片的时候,共享资源可以接受,毕竟它里面很多资源是免费的,得到一些就应该付出一些,但是退出主程序后PPSKernel进程仍然存在我不能接受。而且我发现手动删除启动项后,重启主程序会自动修复删除的启动项,程序设置里面还没的取消,这个就很流氓了。我认为除了...
类别:其它 -
软件 查看:188
更新:2014-08-01