问题标签 [nats.io]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
665 浏览

go - GoLang 中的 NATS 客户端不会订阅

我有一个非常通用的连接脚本来连接 nats 服务器,只是盲目地将消息打印到命令行。

它构建良好并且没有错误地运行,但实际上不会订阅。将fmt.Printf消息打印到终端的正确方法是什么?还是这里有更大的问题?

0 投票
0 回答
82 浏览

ionic-framework - 嗨,我尝试通过单击提交按钮从 Ionic 连接 nats,但它没有连接

我有一段 Nats 代码,我可以在终端中运行节点命令,但同样可以在 ionic2 中运行吗?

单击按钮后,我需要在 IONIC2 中运行该 nats 代码

纳兹代码:

0 投票
1 回答
419 浏览

javascript - 带有错误响应的请求回复

我有一个简单的请求/回复NATS 应用程序。函数中的代码subscribe可能会在实际应用程序中失败并出现错误。任何人都可以建议我正确的方法来响应我的subscribe函数中的错误吗?或者也许解释在 NATS 请求/回复消息中处理错误的正确方法。

这是一个示例代码:

0 投票
1 回答
104 浏览

nats.io - 每当触发 DisconnectedEventHandler 时, args.Conn.ConnectedUrl 在 NATS.IO C# API 中为空

我正在使用 NATS C# API 构建一个消息传递应用程序。我已经设置了所有的事件处理程序,但是我在 DisconnectedEventHandler 中遇到了问题。在 Github 页面中,他们展示了如何处理该事件。我做了完全相同的事情,但每当 DisconnectedEventHandler 被触发时,args.Conn.ConnectedUrl 什么都没有显示。我只想知道哪个服务器断开连接。有人可以帮我吗?

提前致谢。

干杯J

0 投票
2 回答
306 浏览

go - 如何检查 NATS 请求是否被取消

当用户点击路由时,我会发出 NATS 请求,然后等待回复:

订阅者将执行一项资源密集型任务:

如果请求被取消,我如何告诉订阅者停止工作。

context我想为工作人员收到的每条消息创建一个,然后给发件人一个新inbox的等待回复,或者向它发送一个取消通知:

在请求者端,我发送第一个请求并在指定的时间内等待inbox回复或被context取消,在这种情况下,我会向接收者发送一条消息inbox

tick只是一个打勾的功能:

现在这可行,但我想知道是否有更简单的方法可以做到这一点,或者如果没有,我怎样才能使这段代码更好?

0 投票
1 回答
171 浏览

nats.io - 如果 NATS 消息负载包含 \n\r 怎么办?

我正在尝试为 NATS.io 编写客户端库。根据这里的协议,\n\r用于分隔命令、有效负载等。

INFO {"server_id":"1ec445b504f4edfb4cf7927c707dd717","version":"0.6.6","go":"go1.4.2","host":"0.0.0.0","port":4222,"auth_required":false,"ssl_required":false,"max_payload":1048576}

我的问题是如果有效载荷包含\r\n怎么办?我找不到任何关于如何逃跑的信息\r\n。是否应该INFO在收到有效的 JSON 之前阅读而不是寻找\r\n分隔符?

谢谢你的时间!

0 投票
1 回答
629 浏览

nats.io - NATS-Streaming-Server <1ms 延迟

是否可以设置一个 put-get 延迟 < 1ms 的 nats-streaming-server 集群?

我使用文件存储创建了一个 3 节点集群(全部驻留在同一台服务器上)。

例如,

从异步发布到订阅回调的每条消息需要 2-3 毫秒。

还有其他方法可以通过文件存储加快速度吗?

谢谢。

0 投票
1 回答
508 浏览

messaging - Nats.io 队列,同步行为

根据https://nats.io/documentation/concepts/nats-queueing/

Synchronous queue subscribers must build in logic to process the message.

这是否意味着如果队列中有 10 条消息,则只有一个订阅者收到第一条消息,并且在回复后,第二条消息将发送给另一个订阅者?

如果不是,是否有任何消息传递软件或系统可以满足我上面提到的情况?

0 投票
2 回答
1114 浏览

queue - Nats.io:具有不同主题但具有相同命名队列的订阅者会并行处理消息吗?

假设我们有服务器 A 和发布者,服务器 B 和 C 有消费者。我们也有5个不同的科目;富1,富2,...富5。我们总是希望只向一个消费者发送消息并且只接收一个响应。

因此,我们在发布者端使用JS SDK中的 requestOne 函数,并使用 {queue: "default"} 选项订阅函数。因此,服务器 B 和 C 都为每个主题订阅了一次。但是每次订阅时,他们都会使用名称为“default”的队列来防止多个消费者收到与docs中提到的相同的消息。

所以问题是:这个名为“default”的队列是否会在所有主题中共享?或者每个主题都有自己的名为“default”的队列,它只是在特定主题的订阅者之间共享。

例如:生产者为每个主题生成 10 条消息 2。由于所有订阅共享同一个名为“default”的队列,我们​​会同时处理 10 条消息还是只处理 2 条消息?

0 投票
1 回答
281 浏览

go - 如何在 nats 中回复已接受的连接。在 golang 中订阅

我正在尝试在 golang 中创建一个 tcp 服务器,它接受连接,读取数据,然后通过 nats.Publish 发布它。但我也想回复并关闭订阅者内部的连接,而不是在主服务器脚本中我看到两种可能的方式:发布连接或在订阅者中创建一个新连接,但我无法实现提前谢谢你

UPD 关于 I. Kozlovic 回答的评论:不完全是我想要的,但可能会有所帮助:) 我正在写关于关闭 tcp 连接 - 不是 nats 连接并在另一个 go 进程中关闭 - 而不是在它被接受的那个。但是由于我没有成功,我可以根据您的回答执行以下操作:我可以通过 nats 发布我需要的信息,对其进行处理,然后回复“OK。关闭连接”并关闭发布者中的 TCP 连接,它是一个 TCP服务器。但是,如果我不能从这个 go 过程而是从另一个过程中回复,那就太好了。我理解这很棘手,但我想做与我在上一条消息中写的相同的操作,但需要进行一些修改。我有 TCP 服务器,它接受连接,然后连接 nats 并发布消息,