连接到特定服务器

NATS 客户端库可以接受完整的 URL,例如 nats://demo.nats.io:4222,以指定要连接的特定服务器主机和端口。

一些客户端库已不再需要显式指定协议,并可能允许使用 demo.nats.io:4222 或仅 demo.nats.io。在后一种情况下,默认端口 4222 将被使用。请查阅您所使用的特定客户端库的文档,了解支持哪些 URL 格式。

例如,要通过 URL 连接到演示服务器,您可以使用以下代码:

{% tabs %} {% tab title="Go" %}

// 如果连接到默认端口,URL 可以简化为仅主机名/IP。
// 即,下面的连接等同于:
// nats.Connect("nats://demo.nats.io:4222")
nc, err := nats.Connect("demo.nats.io")
if err != nil {
    log.Fatal(err)
}
defer nc.Close()

// 用连接做点事情 nc = Nats.connect("nats://demo.nats.io:4222");

{% endtab %}

{% tab title="Java" %}

// 连接会自动关闭
try (Connection nc = Nats.connect("nats://demo.nats.io:4222")) {
    // 用连接做点事情
}

{% endtab %}

{% tab title="JavaScript" %}

const nc = await connect({ servers: "demo.nats.io" });
// 用连接做点事情
doSomething();
await nc.close();

{% endtab %}

{% tab title="Python" %}

nc = NATS()
await nc.connect(servers=["nats://demo.nats.io:4222"])

# 用连接做点事情

await nc.close()

{% endtab %}

{% tab title="C#" %}

// dotnet add package NATS.Net
using NATS.Net;

await using var client = new NatsClient("nats://demo.nats.io:4222");

// 调用 ConnectAsync() 是可选的,
// 因为它会在需要时自动调用
await client.ConnectAsync();

{% endtab %}

{% tab title="Ruby" %}

require 'nats/client'

NATS.start(servers: ["nats://demo.nats.io:4222"]) do |nc|
   # 用连接做点事情

   # 关闭连接
   nc.close
end

{% endtab %}

{% tab title="C" %}

natsConnection      *conn = NULL;
natsStatus          s;

// 如果连接到默认端口,URL 可以简化为仅主机名/IP。
// 即,下面的连接等同于:
// natsConnection_ConnectTo(&conn, "nats://demo.nats.io:4222");
s = natsConnection_ConnectTo(&conn, "demo.nats.io");
if (s != NATS_OK)
  // 处理错误

// 销毁连接,如果 conn 为 NULL 则忽略。
natsConnection_Destroy(conn);

{% endtab %}

{% endtabs %}