Mercurial > prosody-modules
annotate mod_tcpproxy/web/xmpp.io.js @ 4980:da151f9af861
replaced 'session' with 'origin' in push_disable
session is not defined in this function, trying to access it
leads to an error.
The correct reference seems to be 'origin'.
(This may have come about by copying from the similar
code in process_stanza_queue.)
author | arcseconds |
---|---|
date | Sat, 30 Jul 2022 21:07:47 +1200 |
parents | 7dbde05b48a9 |
children |
rev | line source |
---|---|
148
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 var xmlns_ibb = "http://jabber.org/protocol/ibb"; |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
2 var xmlns_tcp = "http://prosody.im/protocol/tcpproxy"; |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 function XMPPIO(xmppconn, xmpptcp_host) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 { |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 this.xmppconn = xmppconn; |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
7 this.xmpphost = xmpptcp_host; |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
8 this.sid = "FIXME"; |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
148
diff
changeset
|
9 |
148
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
10 this.listeners = []; |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 return this; |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
12 } |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
13 |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
14 XMPPIO.prototype = { |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
15 connect: function (host, port) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
16 { |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
17 var conn = this; |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
18 console.log("Connecting..."); |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
19 |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
20 function onConnect() |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
21 { |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
22 this.xmppconn.addHandler(function (stanza) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
23 { |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
24 var data = stanza.getElementsByTagName("data")[0]; |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
25 if(data) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
26 conn.emit("data", Strophe.Base64.decode(Strophe.getText(data))); |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
27 }, null, "message", null, null, this.xmpphost, {}); |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
28 this.xmppconn.addHandler(function (stanza) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
29 { |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
30 var data = stanza.getElementsByTagName("close")[0]; |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
31 if(close) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
32 { |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
33 conn.write = function () { throw "Connection closed"; }; |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
34 conn.emit("end"); |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
35 } |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
36 }, xmlns_ibb, "iq", "set", null, this.xmpphost, {}); |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
37 conn.emit("connect"); |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
38 } |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
39 |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
40 this.xmppconn.sendIQ($iq({to:this.xmpphost,type:"set"}) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
41 .c("open", { |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
42 "xmlns": xmlns_ibb, |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
43 "xmlns:tcp": xmlns_tcp, |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
44 "tcp:host": host, |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
45 "tcp:port": port.toString(), |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
46 "block-size": "4096", |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
47 "sid": this.sid.toString(), |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
48 "stanza": "message" |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
49 }), onConnect, |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
50 function () { conn.emit("error"); }); |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
51 }, |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
52 emit: function () |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
53 { |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
54 console.log("xmpp.io: Emitting "+arguments[0]); |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
55 var args = Array.prototype.slice.call(arguments, 1); |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
56 var listeners = this.listeners[arguments[0]]; |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
57 if(listeners) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
58 { |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
59 for(var i=0;i<listeners.length;i++) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
60 { |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
61 listeners[i][1].apply(listeners[i][0], args); |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
62 } |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
63 } |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
64 }, |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
65 addListener: function (event, method, obj) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
66 { |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
67 if(typeof(obj)=="undefined") |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
68 obj = this; |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
69 if(!(event in this.listeners)) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
70 this.listeners[event] = []; |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
71 this.listeners[event].push([obj, method]); |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
72 }, |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
73 write: function (data) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
74 { |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
75 return this.xmppconn.send($msg({to:this.xmpphost}) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
76 .c("data", {xmlns:xmlns_ibb, sid:this.sid.toString()}) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
77 .t(Strophe.Base64.encode(data))); |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
78 }, |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
79 end: function () |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
80 { |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
81 return this.xmppconn.send($iq({to:this.xmpphost}) |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
82 .c("close", {xmlns:xmlns_ibb, sid:this.sid.toString()})); |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
83 } |
f2f9b965d1ad
mod_tcpproxy: Add web/ folder containing demo JS client
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
84 }; |