({
originalMessageName,
originalData,
expectedMessageName,
otherPeerIds,
shouldCancelMessageIfTimesOut,
maxNumberOfRetries,
messageRetryTime,
}: {
originalMessageName: string;
originalData: any;
expectedMessageName: string;
otherPeerIds: string[];
shouldCancelMessageIfTimesOut: boolean;
maxNumberOfRetries?: number;
messageRetryTime?: number;
})
| 156 | } = {}; |
| 157 | |
| 158 | const addExpectedMessageAcknowledgement = ({ |
| 159 | originalMessageName, |
| 160 | originalData, |
| 161 | expectedMessageName, |
| 162 | otherPeerIds, |
| 163 | shouldCancelMessageIfTimesOut, |
| 164 | maxNumberOfRetries, |
| 165 | messageRetryTime, |
| 166 | }: { |
| 167 | originalMessageName: string; |
| 168 | originalData: any; |
| 169 | expectedMessageName: string; |
| 170 | otherPeerIds: string[]; |
| 171 | shouldCancelMessageIfTimesOut: boolean; |
| 172 | maxNumberOfRetries?: number; |
| 173 | messageRetryTime?: number; |
| 174 | }) => { |
| 175 | if (!gdjs.multiplayer.isLobbyGameRunning()) { |
| 176 | // This can happen if objects are destroyed at the end of the scene. |
| 177 | // We should not add expected messages in this case. |
| 178 | return; |
| 179 | } |
| 180 | |
| 181 | if (!expectedMessageAcknowledgements[expectedMessageName]) { |
| 182 | expectedMessageAcknowledgements[expectedMessageName] = {}; |
| 183 | } |
| 184 | |
| 185 | debugLogger.info( |
| 186 | `Adding expected message ${expectedMessageName} from ${otherPeerIds.join( |
| 187 | ', ' |
| 188 | )}.` |
| 189 | ); |
| 190 | |
| 191 | otherPeerIds.forEach((peerId) => { |
| 192 | expectedMessageAcknowledgements[expectedMessageName][peerId] = { |
| 193 | acknowledged: false, |
| 194 | lastMessageSentAt: getTimeNow(), |
| 195 | originalMessageName, |
| 196 | originalData, |
| 197 | shouldCancelMessageIfTimesOut, |
| 198 | numberOfRetries: 0, |
| 199 | maxNumberOfRetries: maxNumberOfRetries || defaultMaxRetries, |
| 200 | messageRetryTime: messageRetryTime || defaultMessageRetryTime, |
| 201 | }; |
| 202 | }); |
| 203 | }; |
| 204 | |
| 205 | const getLastClockReceivedForInstanceOnScene = ({ |
| 206 | sceneNetworkId, |
no test coverage detected