语音聊天开发,靠轮询维护住的平台连接
一、各种轮询方式
1、HTTP轮询,定时通过ajax查询服务器端,客户端定时向服务器端发送ajax请求,服务器端接收到请求后马上响应信息并关闭连接,这要求语音聊天开发两次请求间隔时间必须尽可能的小,但若时间间隔减小,客户端在相同时间内就会发出更多的请求,这些请求中大部分都不会返回有用的数据,这只会白白浪费语音聊天开发的带宽和处理资源。
2、JSONP轮询,与HTTP轮询有些类似,不同之处在于使用JSONP可以发送跨域请求,JSONP请求通常可以通过它的调用参数和返回内容识别出来,这是可执行的代码,这种轮询方式对语音聊天开发来说实现很简单,但不具有伸缩性,需要不断向服务器端发送信息,会对服务器造成极大的性能浪费,加重网络负载,拖累服务器。
3、捎带轮询,属于更高级的轮询方式,它会删除所有非必要的请求,不存在时间间隔,语音聊天开发在需要的时候向服务器端发送请求,不同之处在于响应的部分,响应会被分成两个部分,对请求数据的响应和对服务器时间的响应,捎带轮询通常针对服务器端的所有ajax请求可能会返回一个混合的响应。
由于这种方法,语音聊天开发客户端控制了何时发送请求,所以没有不返回数据的请求,对资源的消耗较少,但仍然是客户端主动去请求服务器端。
二、基于长轮询的服务器推模型
相对于轮询,长轮询方式优点更明显,请求异步发出,无需安装插件。长轮询只在打开一条连接后保持并等待服务器推送来数据再关闭,可以采用HTTP长轮询和XHR长轮询。
1、HTTP和JSONP长轮询,语音聊天开发服务器会挂起连接直到有事件发生,接着把脚本内容发送回客户端,然后重新打开另一个script标签来获取下一个事件,从而实现长轮询的模型。
2、XHR长轮询,语音聊天开发中常用的轮询模式,客户端打开一个到服务器端的AJAX请求然后等待响应,服务器端需要一些特定的功能来允许请求被挂起,在有事件发生时,服务器端会在挂起的请求中送回响应并关闭请求。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任www.yunbaokj.com