协议演示

NATS协议的优点在您体验到使用NATS的便捷性时便迅速显现出来。由于NATS协议基于文本,因此您几乎可以在任何平台或语言中使用它。

在以下演示中,我们使用 Telnet。通过网络,您可以使用一组简单的协议命令进行发布和订阅。

建立连接

打开一个终端,并与NATS演示实例建立连接。

telnet demo.nats.io 4222

预期结果大致如下所示。请注意,IP地址和INFO负载可能会有所不同。

Trying 107.170.221.32... Connected to demo.nats.io. Escape character is '^]'. INFO {"server_id":"NCXMJZYQEWUDJFLYLSTTE745I2WUNCVG3LJJ3NRKSFJXEG6RGK7753DJ","version":"2.0.0","proto":1,"go":"go1.11.10","host":"0.0.0.0","port":4222,"max_payload":1048576,"client_id":5089}

确认连接

任何与服务器建立连接的客户端都必须发送CONNECT消息以确认连接。可以指定多个选项来表明客户端支持的功能,但为了本示例的目的,我们可以发送一个空负载。

CONNECT {}

您将看到一条+OK消息作为响应。

观察 ping/pong 时间间隔

在发送CONNECT后不久,您将收到一条PING消息。客户端与服务器之间存在双向行为,用于检查存活状态。如果服务器在一段时间内未收到客户端的PONG,则会关闭客户端连接。如果客户端给服务器发PING但没有收到PONG,则会在集群设置中尝试重新连接到其他服务器(如果有)。

您可以对服务器做出响应,只需简单地输入PONG并按回车键。

PONG

绑定一个订阅

订阅通配符主题foo.*,订阅ID为90

SUB foo.* 90

随后将出现一条+OK消息,表示订阅成功。

发布一条消息

NATS连接是双向的,因此我们不仅可以订阅主题,还可以向它们发布消息。

我们可以发送PUB命令,后面跟主题和消息负载的长度,第二行将跟随消息负载。在本例中,hello是消息负载。输入完成后,按回车键即可发送消息。

PUB foo.bar 5
hello

随后将出现一条+OK消息,表示发布成功。

紧接着,将出现一条MSG消息,表示订阅者已接收到刚刚发布的消息。

MSG foo.bar 90 5
hello

取消订阅主题

您可以使用UNSUB命令取消订阅某个主题。

运行以下命令取消订阅:

UNSUB 90

再次尝试发布

现在我们已经取消了订阅,如果再次尝试发布消息,我们将收到+OK,但不会收到MSG

PUB foo.bar 7
goodbye

关闭连接

使用Ctrl+C关闭连接。不过,如上所述,如果未执行此操作,在一段时间的不活动后,服务器将自动关闭连接。