public async Task UnSubscribeAsync(NATSMsgSubscriptionConfig subscriptionConfig) { await _policy.ExecuteAsync(async (content) => { await ConnectAsync(); var UnSubscribePacket = new UnSubscribePacket(subscriptionConfig.SubscribeId); await _embed_channel.WriteAndFlushAsync(UnSubscribePacket); }, new Dictionary <string, object>() { { "hld", "UnSubscribeAsync" } }); }
protected static void EncodeUnsubscribeMessage(IByteBufferAllocator bufferAllocator, UnSubscribePacket packet, List <object> output) { byte[] IdBytes = EncodeStringInUtf8(packet.Id); byte[] WaitMessagesBytes = EncodeStringInUtf8(packet.WaitMessages?.ToString() ?? string.Empty); int variablePartSize = IdBytes.Length + CRLF_BYTES.Length; if (WaitMessagesBytes.Length > 0) { variablePartSize += SPACES_BYTES.Length + WaitMessagesBytes.Length; } int fixedHeaderBufferSize = UNSUB_BYTES.Length + SPACES_BYTES.Length; IByteBuffer buf = null; try { buf = bufferAllocator.Buffer(fixedHeaderBufferSize + variablePartSize); buf.WriteBytes(UNSUB_BYTES); buf.WriteBytes(SPACES_BYTES); buf.WriteBytes(IdBytes); if (WaitMessagesBytes.Length > 0) { buf.WriteBytes(SPACES_BYTES); buf.WriteBytes(WaitMessagesBytes); } buf.WriteBytes(CRLF_BYTES); output.Add(buf); buf = null; } finally { buf?.SafeRelease(); } }