summaryrefslogtreecommitdiff
path: root/src/web/app/common/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/web/app/common/scripts')
-rw-r--r--src/web/app/common/scripts/messaging-stream.js36
-rw-r--r--src/web/app/common/scripts/messaging-stream.ls34
2 files changed, 36 insertions, 34 deletions
diff --git a/src/web/app/common/scripts/messaging-stream.js b/src/web/app/common/scripts/messaging-stream.js
new file mode 100644
index 0000000000..e6fc6f8bd0
--- /dev/null
+++ b/src/web/app/common/scripts/messaging-stream.js
@@ -0,0 +1,36 @@
+const ReconnectingWebSocket = require('reconnecting-websocket');
+const riot = require('riot');
+
+class Connection {
+ constructor(me, otherparty) {
+ this.event = riot.observable();
+ this.me = me;
+
+ const host = CONFIG.api.url.replace('http', 'ws');
+ this.socket = new ReconnectingWebSocket(`${host}/messaging?i=${me.token}&otherparty=${otherparty}`);
+ this.socket.addEventListener('open', this.onOpen);
+ this.socket.addEventListener('message', this.onMessage);
+ }
+
+ onOpen() {
+ this.socket.send(JSON.stringify({
+ i: this.me.token
+ }));
+ }
+
+ onMessage(message) {
+ try {
+ const message = JSON.parse(message.data);
+ if (message.type) this.event.trigger(message.type, message.body);
+ } catch(e) {
+ // noop
+ }
+ }
+
+ close() {
+ this.socket.removeEventListener('open', this.onOpen);
+ this.socket.removeEventListener('message', this.onMessage);
+ }
+}
+
+module.exports = Connection;
diff --git a/src/web/app/common/scripts/messaging-stream.ls b/src/web/app/common/scripts/messaging-stream.ls
deleted file mode 100644
index ac3e74f1f5..0000000000
--- a/src/web/app/common/scripts/messaging-stream.ls
+++ /dev/null
@@ -1,34 +0,0 @@
-# Stream
-#================================
-
-ReconnectingWebSocket = require 'reconnecting-websocket'
-riot = require 'riot'
-
-class Connection
- (me, otherparty) ~>
- @event = riot.observable!
- @me = me
- host = CONFIG.api.url.replace \http \ws
- @socket = new ReconnectingWebSocket "#{host}/messaging?i=#{me.token}&otherparty=#{otherparty}"
-
- @socket.add-event-listener \open @on-open
- @socket.add-event-listener \message @on-message
-
- on-open: ~>
- @socket.send JSON.stringify do
- i: @me.token
-
- on-message: (message) ~>
- try
- message = JSON.parse message.data
- if message.type?
- @event.trigger message.type, message.body
- catch
- # ignore
-
- close: ~>
- @socket.remove-event-listener \open @on-open
- @socket.remove-event-listener \message @on-message
- @socket.close!
-
-module.exports = Connection