UNPKG

pusher-js

Version:

Pusher Channels JavaScript library for browsers, React Native, NodeJS and web workers

51 lines (42 loc) 1.33 kB
import Logger from 'core/logger'; import TimelineSender from 'core/timeline/timeline_sender'; import * as Collections from 'core/utils/collections'; import Util from 'core/util'; import Runtime from 'runtime'; import TimelineTransport from 'core/timeline/timeline_transport'; var getAgent = function(sender: TimelineSender, useTLS: boolean) { return function(data: any, callback: Function) { var scheme = 'http' + (useTLS ? 's' : '') + '://'; var url = scheme + (sender.host || sender.options.host) + sender.options.path; var query = Collections.buildQueryString(data); url += '/' + 2 + '?' + query; var xhr = Runtime.createXHR(); xhr.open('GET', url, true); xhr.onreadystatechange = function() { if (xhr.readyState === 4) { let { status, responseText } = xhr; if (status !== 200) { Logger.debug( `TimelineSender Error: received ${status} from stats.pusher.com` ); return; } try { var { host } = JSON.parse(responseText); } catch (e) { Logger.debug(`TimelineSenderError: invalid response ${responseText}`); } if (host) { sender.host = host; } } }; xhr.send(); }; }; var xhr = { name: 'xhr', getAgent }; export default xhr;