NATS 是一个开源的、云原生的消息系统。Apcera、百度、西门子、VMware、HTC 和 爱立信 等公司都依赖 NATS 的高性能和高弹性消息传递能力。
这是用 Swift 实现的 NATS 客户端/流媒体
构建于 Vapor 3,依赖 SwiftProto 和 Swift NIO
如果您有任何改进代码的想法,请联系我
配置文件
services.register(NatsRouter.self) { _ -> (RouterController) in
return RouterController()
}
services.register { container -> (NATS) in
let servers = [natsServer(hostname: "0.0.0.0")]
let natsConfig = NatsClientConfig(servers: servers, connectionType: .server(.multiple(1)), disBehavior: .reconnect, clusterName: "_STAN.discover.test-cluster", streaming: true)
return try NATS(container: container, config: natsConfig)
}
注意
连接类型
RouterController 文件
class RouterController: Service, NatsRouter {
func onOpen(handler: NatsHandler, ctx: ChannelHandlerContext) {
print("OPEN")
}
func onStreamingOpen(handler: NatsHandler, ctx: ChannelHandlerContext) {
print("STREAM OPEN")
}
func onClose(handler: NatsHandler, ctx: ChannelHandlerContext) {
print("CLOSED")
}
func onError(handler: NatsHandler, ctx: ChannelHandlerContext, error: Error) {
print("ERROR -> \(error.localizedDescription)")
}
}
订阅
handler.subscribe("Subject") { (msg) in
}