异步通信atmosphere.js

逻辑漫游说
• 阅读 3402

之前的项目,由于要照顾低端机型不支持websocket进行通信,选择了atmosphere.js
在不支持websocket的环境下,使用long-polling长轮询方式进行,很好用。特做个笔记。


$(function () {
   var request = {
        url: ajaxServerUrl + '/chat/doctor/' + data.relationId,
        contentType: "application/json",
        logLevel: 'debug',
        transport: 'websocket',
        trackMessageLength: true,
        reconnectInterval: 5000,
        fallbackTransport: 'long-polling'
    };
   request.onOpen = function(response) {
        uuid = response.request.uuid;
        $.atmosphere.subscribe(request).push(atmosphere.util.stringifyJSON({
            clientId: localStorage.id,
            type: '2',
            uuid: uuid
        }));
        console.log("聊天开始了:"+localStorage.id);
  }; 
   request.onMessage = function (response) {//监听
         console.log(response.responseBody);
         var msgObj = atmosphere.util.parseJSON(response.responseBody);
   };
   request.onClose = function(response) {
    //          subSocket.push(atmosphere.util.stringifyJSON({author: author, message: 'disconnecting'}));
};

request.onError = function(response) {
    logged = false;
};

request.onReconnect = function(request, response) {
    // content.html($('<p>', {text: 'Connection lost, trying to reconnect. Trying to reconnect ' + request.reconnectInterval}));
    // input.attr('disabled', 'disabled');
};
   $.atmosphere.subscribe(request);//发送
}

参考js:http://async-io.org/tutorial.html

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
待兔 待兔
1年前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
Java WebSocket
本示例的目的,就是通过webSocket向客户端(浏览器端)发送消息.一、什么是WebSocket  WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(fullduplex)通信——允许服务器主动发送信息给客户端。WebSocket通信协议于2011年被IETF(https://www.oschina.n
Wesley13 Wesley13
3年前
HTTPS安全通信过程
一、两对公私钥1、CA公私钥:CA公钥:预装在操作系统,内置在浏览器中。备注:微软等公司会根据一些权威安全机构的评估选取一些信誉很好并且通过一定的安全认证的证书发布机构,把这些证书发布机构的证书默认安装在操作系统中,并且设置为操作系统信任的数字证书。CA私钥:由CA机构保管,不会外泄。2、服务公私钥:服
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
3年前
35岁是技术人的天花板吗?
35岁是技术人的天花板吗?我非常不认同“35岁现象”,人类没有那么脆弱,人类的智力不会说是35岁之后就停止发展,更不是说35岁之后就没有机会了。马云35岁还在教书,任正非35岁还在工厂上班。为什么技术人员到35岁就应该退役了呢?所以35岁根本就不是一个问题,我今年已经37岁了,我发现我才刚刚找到自己的节奏,刚刚上路。
Wesley13 Wesley13
3年前
00_设计模式之语言选择
设计模式之语言选择设计模式简介背景设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式(Designpattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的
鸿蒙小林 鸿蒙小林
1个月前
《仿盒马》app开发技术分享-- 分类模块顶部导航列表(15)
技术栈Appgalleryconnect开发准备上一节我们实现了购物车商品列表的大部分功能,实现了商品的添加、删除、增减、价格计算等业务,并且都跟云端进行通信。现在我们继续对项目进行改造,这一节我们要改造的内容是分类页,这个页面我们在之前的非端云一体化项目
逻辑漫游说
逻辑漫游说
Lv1
南朝四百八十寺,多少楼台烟雨中。
文章
3
粉丝
0
获赞
0