|
@@ -1,67 +0,0 @@
|
1
|
|
-/**
|
2
|
|
- * Requests the given webservice that will create the connection and will return
|
3
|
|
- * the necessary details(rid, sid and jid) to attach to this connection and
|
4
|
|
- * start using it. This script can be used for optimizing the connection startup
|
5
|
|
- * time. The function will send AJAX request to a webservice that should
|
6
|
|
- * create the bosh session much faster than the client because the webservice
|
7
|
|
- * can be started on the same machine as the XMPP serever.
|
8
|
|
- *
|
9
|
|
- * NOTE: It's vert important to execute this function as early as you can for
|
10
|
|
- * optimal results.
|
11
|
|
- *
|
12
|
|
- * @param webserviceUrl the url for the web service that is going to create the
|
13
|
|
- * connection.
|
14
|
|
- * @param successCallback callback function called with the result of the AJAX
|
15
|
|
- * request if the request was successfull. The callback will receive one
|
16
|
|
- * parameter which will be JS Object with properties - rid, sid and jid. This
|
17
|
|
- * result should be passed to JitsiConnection.attach method in order to use that
|
18
|
|
- * connection.
|
19
|
|
- * @param error_callback callback function called the AJAX request fail. This
|
20
|
|
- * callback is going to receive one parameter which is going to be JS error
|
21
|
|
- * object with a reason for failure in it.
|
22
|
|
- */
|
23
|
|
-function createConnectionExternally( // eslint-disable-line no-unused-vars
|
24
|
|
- webserviceUrl,
|
25
|
|
- successCallback,
|
26
|
|
- error_callback) {
|
27
|
|
- if (!window.XMLHttpRequest) {
|
28
|
|
- error_callback(new Error('XMLHttpRequest is not supported!'));
|
29
|
|
- return;
|
30
|
|
- }
|
31
|
|
-
|
32
|
|
- var HTTP_STATUS_OK = 200;
|
33
|
|
-
|
34
|
|
- var xhttp = new XMLHttpRequest();
|
35
|
|
-
|
36
|
|
- xhttp.onreadystatechange = function() {
|
37
|
|
- if (xhttp.readyState == xhttp.DONE) {
|
38
|
|
- var now = window.connectionTimes['external_connect.done']
|
39
|
|
- = window.performance.now();
|
40
|
|
- console.log('(TIME) external connect XHR done:\t', now);
|
41
|
|
- if (xhttp.status == HTTP_STATUS_OK) {
|
42
|
|
- try {
|
43
|
|
- var data = JSON.parse(xhttp.responseText);
|
44
|
|
- successCallback(data);
|
45
|
|
- } catch (e) {
|
46
|
|
- error_callback(e);
|
47
|
|
- }
|
48
|
|
- } else {
|
49
|
|
- error_callback(new Error('XMLHttpRequest error. Status: '
|
50
|
|
- + xhttp.status + '. Error message: ' + xhttp.statusText));
|
51
|
|
- }
|
52
|
|
- }
|
53
|
|
- };
|
54
|
|
-
|
55
|
|
- xhttp.open('GET', webserviceUrl, true);
|
56
|
|
-
|
57
|
|
- // Fixes external connect for IE
|
58
|
|
- // The timeout property may be set only after calling the open() method
|
59
|
|
- // and before calling the send() method.
|
60
|
|
- xhttp.timeout = 3000;
|
61
|
|
-
|
62
|
|
- window.connectionTimes = {};
|
63
|
|
- var now = window.connectionTimes['external_connect.sending']
|
64
|
|
- = window.performance.now();
|
65
|
|
- console.log('(TIME) Sending external connect XHR:\t', now);
|
66
|
|
- xhttp.send();
|
67
|
|
-}
|