gopush集群推送兼容ie计划
发布时间:2022-06-15 15:33 所属栏目:61 来源:互联网
导读:gopush 是金山开源的一个集群推送方案,支持1000k级别的推送,使用golang编写,性能是杠杠的,下面一小编来看看gopush集群推送兼容ie方案吧. gopush支持tcp 和 websocket 两种协议,在移动端和新浏览器中,可以用tcp与websocket来解决实时推送,但是ie9以下版本IE浏
gopush 是金山开源的一个集群推送方案,支持1000k级别的推送,使用golang编写,性能是杠杠的,下面一小编来看看gopush集群推送兼容ie方案吧. gopush支持tcp 和 websocket 两种协议,在移动端和新浏览器中,可以用tcp与websocket来解决实时推送,但是ie9以下版本IE浏览器是不支持websocket的,一般都是用长轮训来替换websocket,作者发话说短期内不考虑long-polling方式,这里就用flash的方案解决. 然后在gopush下边建立新的文件夹flash,建立main.go,监视843端口,如果有请求,就返回crossdomain.xml内容,断开连接即可,最后用as3写普通的socket代码连接即可,核心代码如下: private function sendHead():void{ //发送协议 var protocol:String = "*3\r\n$3\r\nsub\r\n$" + key.length+"\r\n"+key+ "\r\n$"+ hearbeattime.toString().length+ "\r\n" + hearbeattime.toString() + "\r\n"; socket.writeUTFBytes(protocol); socket.flush(); } private function socketGetData(data:ProgressEvent):void{ if(socket.bytesAvailable){ var msg:String = socket.readUTFBytes(socket.bytesAvailable); if(msg.charAt(0) == '+'){ if(!heatbeatTimer.running){ socketok = true; heatbeatTimer.start(); } if(reconnectTimer.running){ reconnectTimer.stop(); } }else if(msg.charAt(0) == '$'){ var msgArr:Array = msg.split("\r\n"); var msgString:String = msgArr[1]; ExternalInterface.call("asCallBack"," " + encodeURI(msgString)); } } }。 (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读