blob: b33b2d50e936c4bcd0244992195b5522c83785a3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import SockJS from 'sockjs-client';
import Stomp from 'webstomp-client';
import { eventChannel } from 'redux-saga';
const wsURL = '/seven-wonders-websocket';
export const createWsConnection = (headers = {}) =>
new Promise((resolve, reject) => {
let socket = Stomp.over(new SockJS(wsURL), {
debug: process.env.NODE_ENV !== 'production',
});
socket.connect(headers, frame => resolve({ frame, socket }), reject);
});
export const createSubscriptionChannel = (socket, path) => {
return eventChannel(emitter => {
const socketSubscription = socket.subscribe(path, event => {
emitter(JSON.parse(event.body));
});
return () => socketSubscription.unsubscribe();
});
};
|