xhr.js 1.0 KB

1234567891011121314151617181920212223
  1. // N2O XHR Fallback
  2. // WebSocket = undefined; // to test
  3. $xhr = { heart: false, interval: 100, creator: function(url) { $conn.url = xhr_url(url);
  4. $xhr.channel = { send: xhr_send, close: xhr_close }; $conn.onopen();
  5. return $xhr.channel; }, onheartbeat: function() { xhr('POST',{});} };
  6. transports = [$ws,$xhr];
  7. function xhr_header(request) { request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8'); }
  8. function xhr_url(url) { return url.replace('ws:', 'http:').replace('wss:', 'https:'); }
  9. function xhr_close() { $conn.onclose(); clearInterval(heartbeat); }
  10. function xhr_send(data) { return xhr('POST',data); }
  11. function xhr_receive(data) { if (data.length != 0) $conn.onmessage({'data':data}); }
  12. function xhr(method,data) {
  13. var request = new XMLHttpRequest();
  14. request.open(method,$conn.url,true);
  15. xhr_header(request);
  16. request.onload = function() { console.log(request.response); xhr_receive(request.response); };
  17. request.send(data);
  18. return true; }