加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

gopush集群推送兼容ie计划

发布时间:2022-06-16 01:05:27 所属栏目:教程 来源:互联网
导读: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));
                  }
              }
  }。
gopush集群推送兼容ie计划
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!