about summary refs log tree commit diff
path: root/app/assets/javascripts/components/stream.jsx
blob: 0787399f637a5d054ea36d24cd15c31899bfb9e3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import WebSocketClient from 'websocket.js';

const createWebSocketURL = (url) => {
  const a = document.createElement('a');

  a.href     = url;
  a.href     = a.href;
  a.protocol = a.protocol.replace('http', 'ws');

  return a.href;
};

export default function getStream(accessToken, stream, { connected, received, disconnected }) {
  const ws = new WebSocketClient(`${createWebSocketURL(STREAMING_API_BASE_URL)}/api/v1/streaming/?access_token=${accessToken}&stream=${stream}`);

  ws.onopen    = connected;
  ws.onmessage = e => received(JSON.parse(e.data));
  ws.onclose   = disconnected;

  return ws;
};