异步通讯atmosphere.js

之前的项目,因为要照应低端机型不支持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

    原文作者:dada86
    原文地址: https://segmentfault.com/a/1190000005808548
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞