目录
推荐一个 ZeroMQ 的 100% 原生 C# 开发的客户端。
01 项目简介
ZeroMQ是一个非常轻量级的消息处理库,支持多种消息模式,方便开发者构建分布式和并行应用。
NetMQ 完全兼容 .NET Core 和 .NET Framework,方便我们在 .NET 环境下使用 ZeroMQ 的功能。
NetMQ 提供了一个灵活的消息传递框架,可以在不同的网络协议、进程间或线程间进行高效的数据交换。
NetMQ特点是易于使用、快速且可靠,适用于从低延迟交易系统到大规模分布式应用的各种场景。
02 简单使用方法
1、安装
Install-Package NetMQ
2、简单示例
服务端
// 引入 NetMQ 核心命名空间,包含核心类和方法
using NetMQ;
// 引入 NetMQ.Sockets 命名空间,包含各种类型的套接字(如 RequestSocket、ResponseSocket 等)
using NetMQ.Sockets;
// ================== 服务端代码 ==================
// 使用 ResponseSocket 创建一个响应端(服务端),绑定到本地 5556 端口
// '@' 符号表示该端点是绑定(bind)模式,即服务端监听连接
using (var server = new ResponseSocket("@tcp://localhost:5556")) // bind 模式
{
while (true)
{
// 接收客户端发送的消息(字符串格式)
string request = server.ReceiveFrameString();
// 输出收到的请求内容
Console.WriteLine("Received request: {0}", request);
// 模拟处理请求所需的时间(例如业务逻辑处理)
Thread.Sleep(1000);
// 向客户端发送响应消息
server.SendFrame("World");
}
}
客户端
// 引入 NetMQ 核心命名空间,包含核心类和方法
using NetMQ;
// 引入 NetMQ.Sockets 命名空间,包含各种类型的套接字(如 RequestSocket、ResponseSocket 等)
using NetMQ.Sockets;
// ================== 客户端代码 ==================
// 使用 RequestSocket 创建一个请求端(客户端),连接到服务端
// '>' 符号表示该端点是连接(connect)模式,即客户端主动连接服务端
using (var client = new RequestSocket(">tcp://localhost:5556"))
{
// 向服务端发送请求消息
client.SendFrame("Hello");
// 接收服务端的响应消息
string reply = client.ReceiveFrameString();
// 输出接收到的响应内容
Console.WriteLine("Received reply: {0}", reply);
}
03 项目地址
https://github.com/zeromq/netmq