zoukankan      html  css  js  c++  java
  • 开源消息队列:NetMQ

    NetMQ 是  ZeroMQ的C#移植版本。

    ZeroMQ是一个轻量级的消息内核,它是对标准socket接口的扩展。它提供了一种异步消息队列,多消息模式,消息过滤(订阅),对多种传输协议的无缝访问。

    NetMQ 也是一个社区开源项目,网站在Github上 https://github.com/zeromq/netmq, 可以通过Nuget包获取http://nuget.org/packages/NetMQ

    Ø  是一个并发框架.
    Ø  支持通过进程内(Inproc),进程间(IPC), TCP, 和多播来传递消息.
    Ø  支持多对多的列表、发布/订阅、管道和接收/回复连接.
    Ø  支持异步.

    C# 客户端服务端

    Server.cs

       public static void Main (string[] args)
          {
                using (NetMQContext context = NetMQContext.Create())
                {
                    Server(context);
                }
           }
    
            static void Server(NetMQContext context)
            {
                using (NetMQSocket serverSocket = context.CreateResponseSocket())
                {
                    serverSocket.Bind("tcp://*:5555");
    
                    while (true)
                    {
                        string message = serverSocket.ReceiveString();
    
                        Console.WriteLine("Receive message {0}", message);
    
                        serverSocket.Send("World");
    
                        if (message == "exit")
                        {
                            break;
                        }
                    }
                }
            }
     
    Client.cs
        public static void Main (string[] args)
            {
                using (NetMQContext context = NetMQContext.Create())
                {
                    Client(context);
                }
          
           }
    
            static void Client(NetMQContext context)
            {
                using (NetMQSocket clientSocket = context.CreateRequestSocket())
                {
                    clientSocket.Connect("tcp://127.0.0.1:5555");
    
                    while (true)
                    {
                        Console.WriteLine("Please enter your message:");
                        string message = Console.ReadLine();
                        clientSocket.Send(message);
    
                        string answer = clientSocket.ReceiveString();
    
                        Console.WriteLine("Answer from server: {0}", answer);
    
                        if (message == "exit")
                        {
                            break;
                        }
                    }
                }
            }
    NetMQ也支持Mono,下面是在Mono上的运行:
    image
    ZeroMQ研究与应用分析
  • 相关阅读:
    【Linux】项目部署
    【架构师之路】【MQ】消息队列
    【数据库】【Python】mysql
    【算法】【Python】找出字符串中重复出现的字符 并求出重复次数 且根据重复次数从大到小排列
    【Python】排序 按照list中的字典的某key排序
    Kettle Post请求webservice
    python+pytest+allure接口自动化测试框架
    Python+unittest+requests+htmlTestRunner+excel完整的接口自动化框架
    python实现栈的基本操作
    展示博客园顶部的随笔、文章、评论、阅读量统计数据
  • 原文地址:https://www.cnblogs.com/shanyou/p/3464196.html
Copyright © 2011-2022 走看看