1
0
mirror of https://github.com/taigrr/nats.docs synced 2025-01-18 04:03:23 -08:00

Add C Client examples

This commit is contained in:
ainsley
2020-08-26 09:29:26 -05:00
parent 2c9b2f91fc
commit 4382b309d9
34 changed files with 1165 additions and 0 deletions

View File

@@ -110,5 +110,26 @@ let nc = await connect({
nc.close();
```
{% endtab %}
{% tab title="C" %}
```c
natsConnection *conn = NULL;
natsOptions *opts = NULL;
natsStatus s = NATS_OK;
const char *servers[] = {"nats://127.0.0.1:1222", "nats://127.0.0.1:1223", "nats://127.0.0.1:1224"};
s = natsOptions_Create(&opts);
if (s == NATS_OK)
s = natsOptions_SetServers(opts, servers, 3);
if (s == NATS_OK)
s = natsConnection_Connect(&conn, opts);
(...)
// Destroy objects that were created
natsConnection_Destroy(conn);
natsOptions_Destroy(opts);
```
{% endtab %}
{% endtabs %}

View File

@@ -85,5 +85,26 @@ let nc = await connect({
});
```
{% endtab %}
{% tab title="C" %}
```c
nnatsConnection *conn = NULL;
natsOptions *opts = NULL;
natsStatus s = NATS_OK;
s = natsOptions_Create(&opts);
if (s == NATS_OK)
// Set the timeout to 10 seconds (10,000 milliseconds)
s = natsOptions_SetTimeout(opts, 10000);
if (s == NATS_OK)
s = natsConnection_Connect(&conn, opts);
(...)
// Destroy objects that were created
natsConnection_Destroy(conn);
natsOptions_Destroy(opts);
```
{% endtab %}
{% endtabs %}

View File

@@ -85,5 +85,19 @@ connect()
// add a .catch/.finally
```
{% endtab %}
{% tab title="C" %}
```c
natsConnection *conn = NULL;
natsStatus s;
s = natsConnection_ConnectTo(&conn, NATS_DEFAULT_URL);
if (s != NATS_OK)
// handle error
// Destroy connection, no-op if conn is NULL.
natsConnection_Destroy(conn);
```
{% endtab %}
{% endtabs %}

View File

@@ -89,6 +89,25 @@ nc.on('connect', (nc: Client, url: string, options: ServerInfo) => {
});
```
{% endtab %}
{% tab title="C" %}
```c
natsConnection *conn = NULL;
natsStatus s = NATS_OK;
s = natsConnection_ConnectTo(&conn, NATS_DEFAULT_URL);
if (s == NATS_OK)
{
int64_t mp = natsConnection_GetMaxPayload(conn);
printf("Max payload: %d\n", (int) mp);
}
(...)
// Destroy objects that were created
natsConnection_Destroy(conn);
```
{% endtab %}
{% endtabs %}
## Turn On Pedantic Mode
@@ -178,6 +197,26 @@ let nc = await connect({
nc.close();
```
{% endtab %}
{% tab title="C" %}
```c
natsConnection *conn = NULL;
natsOptions *opts = NULL;
natsStatus s = NATS_OK;
s = natsOptions_Create(&opts);
if (s == NATS_OK)
s = natsOptions_SetPedantic(opts, true);
if (s == NATS_OK)
s = natsConnection_Connect(&conn, opts);
(...)
// Destroy objects that were created
natsConnection_Destroy(conn);
natsOptions_Destroy(opts);
```
{% endtab %}
{% endtabs %}
## Set the Maximum Control Line Size
@@ -236,6 +275,12 @@ let nc = NATS.connect({
// control line size is not configurable on TypeScript NATS client.
```
{% endtab %}
{% tab title="C" %}
```c
// control line is not configurable on C NATS client.
```
{% endtab %}
{% endtabs %}
## Turn On/Off Verbose Mode
@@ -325,5 +370,25 @@ let nc = await connect({
nc.close();
```
{% endtab %}
{% tab title="C" %}
```c
natsConnection *conn = NULL;
natsOptions *opts = NULL;
natsStatus s = NATS_OK;
s = natsOptions_Create(&opts);
if (s == NATS_OK)
s = natsOptions_SetVerbose(opts, true);
if (s == NATS_OK)
s = natsConnection_Connect(&conn, opts);
(...)
// Destroy objects that were created
natsConnection_Destroy(conn);
natsOptions_Destroy(opts);
```
{% endtab %}
{% endtabs %}

View File

@@ -86,5 +86,25 @@ let nc = await connect({
nc.close();
```
{% endtab %}
{% tab title="C" %}
```c
natsConnection *conn = NULL;
natsOptions *opts = NULL;
natsStatus s = NATS_OK;
s = natsOptions_Create(&opts);
if (s == NATS_OK)
s = natsOptions_SetName(opts, "API Name Option Example");
if (s == NATS_OK)
s = natsConnection_Connect(&conn, opts);
(...)
// Destroy objects that were created
natsConnection_Destroy(conn);
natsOptions_Destroy(opts);
```
{% endtab %}
{% endtabs %}

View File

@@ -84,5 +84,25 @@ let nc = await connect({
url: "nats://demo.nats.io:4222", noEcho: true});
```
{% endtab %}
{% tab title="C" %}
```c
natsConnection *conn = NULL;
natsOptions *opts = NULL;
natsStatus s = NATS_OK;
s = natsOptions_Create(&opts);
if (s == NATS_OK)
s = natsOptions_SetNoEcho(opts, true);
if (s == NATS_OK)
s = natsConnection_Connect(&conn, opts);
(...)
// Destroy objects that were created
natsConnection_Destroy(conn);
natsOptions_Destroy(opts);
```
{% endtab %}
{% endtabs %}

View File

@@ -93,5 +93,29 @@ let nc = await connect({
nc.close();
```
{% endtab %}
{% tab title="C" %}
```c
natsConnection *conn = NULL;
natsOptions *opts = NULL;
natsStatus s = NATS_OK;
s = natsOptions_Create(&opts);
if (s == NATS_OK)
// Set Ping interval to 20 seconds (20,000 milliseconds)
s = natsOptions_SetPingInterval(opts, 20000);
if (s == NATS_OK)
// Set the limit to 5
s = natsOptions_SetMaxPingsOut(opts, 5);
if (s == NATS_OK)
s = natsConnection_Connect(&conn, opts);
(...)
// Destroy objects that were created
natsConnection_Destroy(conn);
natsOptions_Destroy(opts);
```
{% endtab %}
{% endtabs %}

View File

@@ -82,5 +82,23 @@ end
nc.close();
```
{% endtab %}
{% tab title="C" %}
```c
natsConnection *conn = NULL;
natsStatus s;
// If connecting to the default port, the URL can be simplified
// to just the hostname/IP.
// That is, the connect below is equivalent to:
// natsConnection_ConnectTo(&conn, "nats://demo.nats.io:4222");
s = natsConnection_ConnectTo(&conn, "demo.nats.io");
if (s != NATS_OK)
// handle error
// Destroy connection, no-op if conn is NULL.
natsConnection_Destroy(conn);
```
{% endtab %}
{% endtabs %}