diff --git a/src/SocketIOClient/SocketIO.cs b/src/SocketIOClient/SocketIO.cs index e7182886..d8cb82ff 100644 --- a/src/SocketIOClient/SocketIO.cs +++ b/src/SocketIOClient/SocketIO.cs @@ -283,13 +283,15 @@ public async Task EmitAsync( CancellationToken cancellationToken) { CheckStatusAndData(data); + int packetId; lock (_ackHandlerLock) { _packetId++; - _ackHandlers.Add(_packetId, ack); + packetId = _packetId; + _ackHandlers.Add(packetId, ack); } var sessionData = MergeEventData(eventName, data); - await _session!.SendAsync(sessionData, _packetId, cancellationToken).ConfigureAwait(false); + await _session!.SendAsync(sessionData, packetId, cancellationToken).ConfigureAwait(false); } public async Task EmitAsync(string eventName, IEnumerable data, Func ack)