本文介绍: keyword:websocket回调,websocket像ajax一样,websocket接口请求,同步回调,websocket MVC框架前言传统http短连接拉取接收数据太浪费资源,tcp每次都得建立连接,三次握手,释放,只能单向通信,定时轮询。而websocket可以建立长连接,后一直保持,节约服务器资源,跟每台客户机只维持一个连接就行。节省流量 不需要频繁地发起关闭tcp连接,可以双向通信,协议以及数据格式自己算了算,省略HTTP上不必要的信息,基于以上原因,开发一套socket框架来
keyword:websocket回调,websocket像ajax一样,websocket接口请求,同步回调,websocket MVC框架
前言
传统http短连接拉取接收数据太浪费资源,tcp每次都得建立连接,三次握手,释放,只能单向通信,定时轮询。
而websocket可以建立长连接,后一直保持,节约服务器资源,跟每台客户机只维持一个连接就行。
节省流量 不需要频繁地发起关闭tcp连接,可以双向通信,
协议以及数据格式自己算了算,浏览器、app、物联网多种设备一套接口通用,省略HTTP上不多余的信息,
基于以上原因,开发一套socket框架来代替http ajax模式,同时保持跟http一样容易上手
目的
用websocket实现Ajax回调效果,所有接口请求用websocket进行,
想要使websocket发送的消息实现跟ajax回调消息那种效果,发送出去,然后回调函数里收到服务器发送来的消息
难点
websocket与http不同的之处在于,http发的请求是同步的,浏览器发起请求会同步等待服务器返回,而socket是发送完了就结束了,不管服务器又没返回,而且先发地数据不一定先收到,不按顺序返回,
难点就在于发送数据在ws.send函数里,而接收数据在ws.onmessage里,数据不能互通
原理
解决方法
发送消息的时候把回调函数存到一个数组中,数组下标用唯一键名避免冲突,键名要发送给服务器,服务器返回数据的时候要带上,
收到服务器消息时,取出键名去调用数组中对应的回调函数,把数据传入回调函数执行回调操作
这样就实现了跟ajax一样的效果
实现
调用
flysocket
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。