You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by ba...@apache.org on 2024/04/06 01:02:25 UTC
(pulsar-client-node) branch master updated: [feat] Add listenerName to client config (#375)
This is an automated email from the ASF dual-hosted git repository.
baodi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar-client-node.git
The following commit(s) were added to refs/heads/master by this push:
new 81ab43d [feat] Add listenerName to client config (#375)
81ab43d is described below
commit 81ab43d8f63dfe93567d197cc2e4d56d69075d6a
Author: Rory Schadler <48...@users.noreply.github.com>
AuthorDate: Fri Apr 5 21:02:20 2024 -0400
[feat] Add listenerName to client config (#375)
* Allow passing listenerName to client config
* Add listener to test conf, e2e test
---
index.d.ts | 1 +
src/Client.cc | 6 ++++++
tests/conf/standalone.conf | 7 +++++++
tests/end_to_end.test.js | 11 ++++++-----
4 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/index.d.ts b/index.d.ts
index c416ee2..4680d81 100644
--- a/index.d.ts
+++ b/index.d.ts
@@ -30,6 +30,7 @@ export interface ClientConfig {
tlsValidateHostname?: boolean;
tlsAllowInsecureConnection?: boolean;
statsIntervalInSeconds?: number;
+ listenerName?: string;
log?: (level: LogLevel, file: string, line: number, message: string) => void;
}
diff --git a/src/Client.cc b/src/Client.cc
index f557a08..e3cbb72 100644
--- a/src/Client.cc
+++ b/src/Client.cc
@@ -40,6 +40,7 @@ static const std::string CFG_TLS_VALIDATE_HOSTNAME = "tlsValidateHostname";
static const std::string CFG_TLS_ALLOW_INSECURE = "tlsAllowInsecureConnection";
static const std::string CFG_STATS_INTERVAL = "statsIntervalInSeconds";
static const std::string CFG_LOG = "log";
+static const std::string CFG_LISTENER_NAME = "listenerName";
LogCallback *Client::logCallback = nullptr;
@@ -186,6 +187,11 @@ Client::Client(const Napi::CallbackInfo &info) : Napi::ObjectWrap<Client>(info)
pulsar_client_configuration_set_stats_interval_in_seconds(cClientConfig.get(), statsIntervalInSeconds);
}
+ if (clientConfig.Has(CFG_LISTENER_NAME) && clientConfig.Get(CFG_LISTENER_NAME).IsString()) {
+ Napi::String listenerName = clientConfig.Get(CFG_LISTENER_NAME).ToString();
+ pulsar_client_configuration_set_listener_name(cClientConfig.get(), listenerName.Utf8Value().c_str());
+ }
+
try {
this->cClient = std::shared_ptr<pulsar_client_t>(
pulsar_client_create(serviceUrl.Utf8Value().c_str(), cClientConfig.get()), pulsar_client_free);
diff --git a/tests/conf/standalone.conf b/tests/conf/standalone.conf
index 2310724..b3618fa 100755
--- a/tests/conf/standalone.conf
+++ b/tests/conf/standalone.conf
@@ -38,6 +38,13 @@ bindAddress=0.0.0.0
# Hostname or IP address the service advertises to the outside world. If not set, the value of InetAddress.getLocalHost().getHostName() is used.
advertisedAddress=localhost
+# Used to specify multiple advertised listeners for the broker.
+# The value must format as <listener_name>:pulsar://<host>:<port>,
+# multiple listeners should separate with commas.
+# Do not use this configuration with advertisedAddress and brokerServicePort.
+# The Default value is absent means use advertisedAddress and brokerServicePort.
+advertisedListeners=localhost6650:pulsar://localhost:6650,localhost6651:pulsar+ssl://localhost:6651,localhost8443:pulsar+ssl://localhost:8443
+
# Name of the cluster to which this broker belongs to
clusterName=standalone
diff --git a/tests/end_to_end.test.js b/tests/end_to_end.test.js
index df239d9..1a551de 100644
--- a/tests/end_to_end.test.js
+++ b/tests/end_to_end.test.js
@@ -23,15 +23,16 @@ const Pulsar = require('../index');
(() => {
describe('End To End', () => {
test.each([
- ['pulsar://localhost:6650'],
- ['pulsar+ssl://localhost:6651'],
- ['http://localhost:8080'],
- ['https://localhost:8443'],
- ])('Produce/Consume to %s', async (serviceUrl) => {
+ { serviceUrl: 'pulsar://localhost:6650', listenerName: undefined },
+ { serviceUrl: 'pulsar+ssl://localhost:6651', listenerName: 'localhost6651' },
+ { serviceUrl: 'http://localhost:8080', listenerName: undefined },
+ { serviceUrl: 'https://localhost:8443', listenerName: 'localhost8443' },
+ ])('Produce/Consume to $serviceUrl', async ({ serviceUrl, listenerName }) => {
const client = new Pulsar.Client({
serviceUrl,
tlsTrustCertsFilePath: `${__dirname}/certificate/server.crt`,
operationTimeoutSeconds: 30,
+ listenerName,
});
const topic = 'persistent://public/default/produce-consume';