Compare commits

..

No commits in common. "bb229bbcf8330c1cef8145d936ae11940f36a589" and "dff0d92474ddcc991df2d51c93c994558c782c8b" have entirely different histories.

4 changed files with 23 additions and 0 deletions

View File

@ -5,6 +5,7 @@
"enableWebsocket": true,
"enableTCPSocket": true,
"enablePolling": true,
"wildcardChannel": "*",
"pollingInterval": 3600,
"enablePrometheus": true
}

View File

@ -186,6 +186,7 @@
<h3>Opening a channel</h3>
<div class="sub">
<p>Opening channels allows the receiving of messages from other clients.</p>
<p>The <b>Wildcard</b> to listen to all channels is <code>*</code>.</p>
<table>
<tr>
<th>Field</th>

View File

@ -41,6 +41,7 @@ export interface Server {
enableWebsocket: boolean,
enableTCPSocket: boolean,
enablePolling: boolean,
wildcardChannel: string,
pollingInterval: number,
enablePrometheus: boolean,
},

View File

@ -114,6 +114,11 @@ function transmitMessage(sessionId: string, channel: string | number, message: a
}
}
if (channel === config.wildcardChannel) return {
ok: false,
error: config.wildcardChannel + " is read-only",
}
// Build the message meta
let meta: MetaMessage = (rawMeta || {}) as MetaMessage;
@ -147,6 +152,21 @@ function transmitMessage(sessionId: string, channel: string | number, message: a
})
}
// Send message to wildcard channel
let wildcardChannelArray = server.channels[config.wildcardChannel];
if (wildcardChannelArray) {
wildcardChannelArray.forEach(recipientId => {
server.clients[recipientId]?.send({
type: "message",
channel: config.wildcardChannel,
message: message,
meta: meta,
})
server.prometheus.messagesTrafficCounter.labels('outgoing').inc();
})
}
return {
ok: true,
};