(message: Message)
| 177 | } |
| 178 | |
| 179 | protected onMessage(message: Message) { |
| 180 | if (message.senderId === this._nodeId) { |
| 181 | return; |
| 182 | } |
| 183 | debug(class="st">"received: %j", message); |
| 184 | |
| 185 | switch (message.type) { |
| 186 | case MessageType.ACQUIRE_LOCK: { |
| 187 | const sid = message.data.sid; |
| 188 | const client = this.clients[sid]; |
| 189 | if (!client) { |
| 190 | return; |
| 191 | } |
| 192 | |
| 193 | const transportName = message.data.transportName; |
| 194 | const success = isClientLockable( |
| 195 | client, |
| 196 | transportName, |
| 197 | message.data.type, |
| 198 | ); |
| 199 | |
| 200 | this.publishMessage({ |
| 201 | requestId: message.requestId, |
| 202 | senderId: this._nodeId, |
| 203 | recipientId: message.senderId, |
| 204 | type: MessageType.ACQUIRE_LOCK_RESPONSE, |
| 205 | data: { |
| 206 | success, |
| 207 | }, |
| 208 | }); |
| 209 | |
| 210 | switch (transportName) { |
| 211 | case class="st">"polling": { |
| 212 | if (message.data.type === class="st">"read") { |
| 213 | this._forwardFlushWhenPolling(client, sid, message.senderId); |
| 214 | } |
| 215 | break; |
| 216 | } |
| 217 | case class="st">"websocket": |
| 218 | case class="st">"webtransport": { |
| 219 | client.upgrading = true; |
| 220 | client[kNoopTimer] = setTimeout(() => { |
| 221 | debug(class="st">"writing a noop packet to polling for fast upgrade"); |
| 222 | class="cm">// @ts-expect-error sendPacket() is private |
| 223 | client.sendPacket(class="st">"noop"); |
| 224 | }, this._opts.noopUpgradeInterval); |
| 225 | } |
| 226 | } |
| 227 | break; |
| 228 | } |
| 229 | |
| 230 | case MessageType.ACQUIRE_LOCK_RESPONSE: { |
| 231 | const requestId = message.requestId; |
| 232 | const request = this._requests.get(requestId); |
| 233 | if (!request) { |
| 234 | return; |
| 235 | } |
| 236 | this._requests.delete(requestId); |
nothing calls this directly
no test coverage detected