MCPcopy Index your code
hub / github.com/bugy/script-server / ReactiveWebSocket

Function ReactiveWebSocket

web-src/src/common/connections/rxWebsocket.js:14–105  ·  view source on GitHub ↗
(path, observer)

Source from the content-addressed store, hash-verified

12let i = 0;
13
14export function ReactiveWebSocket(path, observer) {
15 if (/^((https?)|(wss?)):\/\//.test(path)) {
16 this.url = path;
17 } else {
18 this.url = getWebsocketUrl(path);
19 }
20
21 var self = this;
22
23 this._finished = false;
24 this._observer = observer;
25 this._id = i++;
26 this.queuedMessages = []
27
28 try {
29 this._websocket = new WebSocket(this.url);
30 } catch (e) {
31 if (this._observer.onError) {
32 this._observer.onError(e);
33 }
34 return;
35 }
36
37 this._websocket.addEventListener('open', () => {
38 for (const queuedMessage of this.queuedMessages) {
39 this._websocket.send(queuedMessage);
40 }
41 })
42
43 this._websocket.addEventListener('close', function (event) {
44 if (self._finished) {
45 return;
46 }
47
48 self._finished = true;
49
50 if (event.code === 1000) {
51 self._observer.onCompleted();
52 return;
53 }
54
55 if (event.code === 403) {
56 self._observer.onError(new HttpForbiddenError(event.code, event.reason));
57 return;
58 }
59
60 if (event.code === 401) {
61 self._observer.onError(new HttpUnauthorizedError(event.code, event.reason));
62 return;
63 }
64
65 if (event.code === 404) {
66 self._observer.onError(new HttpRequestError(event.code, event.reason));
67 return;
68 }
69
70 if (self._observer.onError) {
71 self._observer.onError(new SocketClosedError(event.code, event.reason));

Callers

nothing calls this directly

Calls 9

getWebsocketUrlFunction · 0.90
isWebsocketClosedFunction · 0.90
isWebsocketConnectingFunction · 0.90
isWebsocketOpenFunction · 0.90
testMethod · 0.80
logMethod · 0.80
sendMethod · 0.45
closeMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected