亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何在一個.NET?Core項目中使用RabbitMQ進行即時消息管理

 更新時間:2024年09月28日 10:49:50   作者:新空間代碼工作室  
本文提供了在.NETCore項目中使用RabbitMQ進行即時消息管理的詳細操作指南,包括安裝Erlang和RabbitMQ,配置RabbitMQ,以及在.NETCore項目中編寫代碼和調試,操作步驟詳盡,感興趣的朋友一起看看吧

為了在一個.NET Core項目中使用RabbitMQ進行即時消息管理,以下是詳細的全程操作指南,包括安裝、配置、編寫代碼和調試使用。

一、安裝RabbitMQ

1. 安裝Erlang

RabbitMQ依賴Erlang,因此需要先安裝Erlang。

Windows:
下載并運行Erlang安裝程序:Erlang下載頁面

2. 安裝RabbitMQ

Windows:

下載并運行RabbitMQ安裝程序:RabbitMQ下載頁面

二、配置RabbitMQ

1. 啟用管理插件

打開命令提示符,并運行以下命令:

rabbitmq-plugins enable rabbitmq_management

2. 創(chuàng)建用戶并設置權限

rabbitmqctl add_user myuser mypassword
rabbitmqctl set_permissions -p / myuser ".*" ".*" ".*"
rabbitmqctl set_user_tags myuser administrator

3. 訪問管理界面

在瀏覽器中訪問:http://localhost:15672
使用剛才創(chuàng)建的用戶名 myuser 和密碼 mypassword 登錄。

三、在.NET Core項目中使用RabbitMQ

1. 創(chuàng)建.NET Core項目

打開命令提示符或PowerShell,進入你想創(chuàng)建項目的目錄,然后運行以下命令:

dotnet new console -n IMProject
cd IMProject

2. 安裝RabbitMQ.Client包

在項目目錄中運行以下命令安裝RabbitMQ的客戶端庫:

dotnet add package RabbitMQ.Client

3. 編寫發(fā)送和接收消息的代碼

發(fā)送消息 (Producer)

創(chuàng)建一個文件 Producer.cs,內容如下:

using System;
using RabbitMQ.Client;
using System.Text;
class Producer
{
    public static void Main()
    {
        var factory = new ConnectionFactory() { HostName = "localhost" };
        using (var connection = factory.CreateConnection())
        using (var channel = connection.CreateModel())
        {
            channel.QueueDeclare(queue: "chat",
                                 durable: false,
                                 exclusive: false,
                                 autoDelete: false,
                                 arguments: null);
            string message = "Hello World!";
            var body = Encoding.UTF8.GetBytes(message);
            channel.BasicPublish(exchange: "",
                                 routingKey: "chat",
                                 basicProperties: null,
                                 body: body);
            Console.WriteLine(" [x] Sent {0}", message);
        }
    }
}

接收消息 (Consumer)

創(chuàng)建一個文件 Consumer.cs,內容如下:

using System;
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System.Text;
class Consumer
{
    public static void Main()
    {
        var factory = new ConnectionFactory() { HostName = "localhost" };
        using (var connection = factory.CreateConnection())
        using (var channel = connection.CreateModel())
        {
            channel.QueueDeclare(queue: "chat",
                                 durable: false,
                                 exclusive: false,
                                 autoDelete: false,
                                 arguments: null);
            var consumer = new EventingBasicConsumer(channel);
            consumer.Received += (model, ea) =>
            {
                var body = ea.Body.ToArray();
                var message = Encoding.UTF8.GetString(body);
                Console.WriteLine(" [x] Received {0}", message);
            };
            channel.BasicConsume(queue: "chat",
                                 autoAck: true,
                                 consumer: consumer);
            Console.WriteLine(" [*] Waiting for messages. To exit press CTRL+C");
            Console.ReadLine();
        }
    }
}

四、調試和運行

1. 運行接收消息的程序

在命令提示符或PowerShell中,運行以下命令:

dotnet run --project ./Consumer.csproj

你應該會看到類似以下的輸出:

 [*] Waiting for messages. To exit press CTRL+C

2. 運行發(fā)送消息的程序

打開另一個命令提示符或PowerShell窗口,運行以下命令:

dotnet run --project ./Producer.csproj

你應該會看到類似以下的輸出:

 [x] Sent Hello World!

在接收消息的程序窗口中,你應該會看到類似以下的輸出:

 [x] Received Hello World!

五、集成到IM項目中

為了將RabbitMQ集成到一個更復雜的IM項目中,你可以創(chuàng)建一個ASP.NET Core Web API項目,并在控制器中使用RabbitMQ來發(fā)送和接收消息。

1. 創(chuàng)建ASP.NET Core Web API項目

在命令提示符或PowerShell中,運行以下命令:

dotnet new webapi -n IMWebApi
cd IMWebApi

2. 安裝RabbitMQ.Client包

在項目目錄中運行以下命令安裝RabbitMQ的客戶端庫:

dotnet add package RabbitMQ.Client

3. 創(chuàng)建消息服務

創(chuàng)建一個文件 Services/RabbitMQService.cs,內容如下:

using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System;
using System.Text;
public class RabbitMQService
{
    private readonly ConnectionFactory _factory;
    public RabbitMQService()
    {
        _factory = new ConnectionFactory() { HostName = "localhost" };
    }
    public void SendMessage(string message)
    {
        using (var connection = _factory.CreateConnection())
        using (var channel = connection.CreateModel())
        {
            channel.QueueDeclare(queue: "chat",
                                 durable: false,
                                 exclusive: false,
                                 autoDelete: false,
                                 arguments: null);
            var body = Encoding.UTF8.GetBytes(message);
            channel.BasicPublish(exchange: "",
                                 routingKey: "chat",
                                 basicProperties: null,
                                 body: body);
            Console.WriteLine(" [x] Sent {0}", message);
        }
    }
    public void ReceiveMessages()
    {
        using (var connection = _factory.CreateConnection())
        using (var channel = connection.CreateModel())
        {
            channel.QueueDeclare(queue: "chat",
                                 durable: false,
                                 exclusive: false,
                                 autoDelete: false,
                                 arguments: null);
            var consumer = new EventingBasicConsumer(channel);
            consumer.Received += (model, ea) =>
            {
                var body = ea.Body.ToArray();
                var message = Encoding.UTF8.GetString(body);
                Console.WriteLine(" [x] Received {0}", message);
            };
            channel.BasicConsume(queue: "chat",
                                 autoAck: true,
                                 consumer: consumer);
            Console.WriteLine(" [*] Waiting for messages. To exit press CTRL+C");
            Console.ReadLine();
        }
    }
}

4. 創(chuàng)建控制器

創(chuàng)建一個文件 Controllers/ChatController.cs,內容如下:

using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("[controller]")]
public class ChatController : ControllerBase
{
    private readonly RabbitMQService _rabbitMQService;
    public ChatController()
    {
        _rabbitMQService = new RabbitMQService();
    }
    [HttpPost("send")]
    public IActionResult SendMessage([FromBody] string message)
    {
        _rabbitMQService.SendMessage(message);
        return Ok("Message sent");
    }
    [HttpGet("receive")]
    public IActionResult ReceiveMessages()
    {
        _rabbitMQService.ReceiveMessages();
        return Ok("Receiving messages");
    }
}

5. 運行Web API

在命令提示符或PowerShell中,運行以下命令:

dotnet run

你可以使用Postman或其他API測試工具來發(fā)送和接收消息:

  • 發(fā)送消息:POST http://localhost:5000/chat/send,請求體為純文本消息。
  • 接收消息:GET http://localhost:5000/chat/receive。

六、調試和測試

1. 發(fā)送消息

使用Postman發(fā)送一個POST請求到http://localhost:5000/chat/send,請求體為純文本消息,例如:“Hello from Postman”。

2. 接收消息

在瀏覽器或Postman中發(fā)送一個GET請求到http://localhost:5000/chat/receive,你應該會在控制臺中看到接收到的消息。

七、總結

通過以上步驟,你已經成功地在一個.NET Core項目中使用RabbitMQ進行即時消息管理。你可以根據項目的需求進一步擴展和優(yōu)化。例如,使用依賴注入來管理RabbitMQService,處理消息的持久化存儲,添加更多的業(yè)務邏輯等。

//python 因為愛,所以學
print("Hello, Python!")

到此這篇關于在一個.NET Core項目中使用RabbitMQ進行即時消息管理的文章就介紹到這了,更多相關.NET Core使用RabbitMQ即時消息管理內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • asp.net獲取ListView與gridview中當前行的行號

    asp.net獲取ListView與gridview中當前行的行號

    這篇文章主要介紹了asp.net獲取ListView與gridview中當前行的行號,實例分析了asp.net針對ListView與gridview獲取行號的實現技巧,需要的朋友可以參考下
    2016-01-01
  • 基于.net core微服務的另一種實現方法

    基于.net core微服務的另一種實現方法

    這篇文章主要給大家介紹了基于.net core微服務的另一種實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • C# .Net動態(tài)調用webService實現思路及代碼

    C# .Net動態(tài)調用webService實現思路及代碼

    動態(tài)調用web服務將執(zhí)行以下步驟:獲取WSDL/生成客戶端代理類代碼/設定編譯參數/編譯代理類/生成代理實例,并調用方法,很詳細的,感興趣的你可不要錯過了哈
    2013-02-02
  • C# 命名規(guī)則(挺不錯的)

    C# 命名規(guī)則(挺不錯的)

    我自己總結的一套命名規(guī)則,其實規(guī)則很重要,它是一種標準,可有可無,但有總會比無好,大家正在編碼的同志仔細看看,給點改進意見。
    2009-02-02
  • 基于MVC5中的Model層開發(fā)數據注解

    基于MVC5中的Model層開發(fā)數據注解

    下面小編就為大家分享一篇基于MVC5中的Model層開發(fā)數據注解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • asp.net AJAX注冊類

    asp.net AJAX注冊類

    單純用JavaScript,不需要注冊,但是就是用不了AJAX的某些機制。
    2010-02-02
  • JQuery運用ajax注冊用戶實例(后臺asp.net)

    JQuery運用ajax注冊用戶實例(后臺asp.net)

    JQuery運用ajax注冊用戶實例,其實那中后臺語言都是差不多的形式。
    2009-12-12
  • asp.net靜態(tài)方法彈出對話框實現思路

    asp.net靜態(tài)方法彈出對話框實現思路

    為菜鳥所準備……其實就是彈出JavaScript小窗口,總得來說就是定義的一個DIV,感興趣的朋友可以了解下,或許對你學習asp.net有所幫助
    2013-02-02
  • 使用EF CORE遷移數據庫

    使用EF CORE遷移數據庫

    這篇文章介紹了使用EF CORE遷移數據庫的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • ASP.NET無刷新分頁簡單實現

    ASP.NET無刷新分頁簡單實現

    無刷新分頁功能,雖然比較簡單,但是涉及到的知識面蠻多的,我記錄一下制作的步驟與心得,僅供參考。如有哪里不足,希望大家指出,有更好的方法,也可以提出來,大家一起學習。
    2015-09-09

最新評論