Tạo ứng dụng chat đơn giản sử dụng Socket.IO trong C#

Hướng dẫn chi tiết cách tạo ứng dụng chat đơn giản sử dụng Socket.IO trong C#, giúp bạn hiểu cách thức hoạt động của giao tiếp thời gian thực và xây dựng ứng dụng tương tác.

Bài viết này sẽ hướng dẫn bạn cách tạo một ứng dụng chat đơn giản bằng C# và sử dụng Socket.IO để thiết lập kết nối giữa server và client. Chúng ta sẽ thiết lập một server đơn giản và một client web để gửi và nhận tin nhắn.

Mã C#:

Server (C#)

using System;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
using SocketIO.Server;

namespace ChatApp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }

    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSocketIOServer();
        }

        public void Configure(IApplicationBuilder app)
        {
            app.UseSocketIOServer();

            app.Map("/", async context =>
            {
                context.Response.ContentType = "text/html";
                await context.Response.WriteAsync("<h1>Welcome to Chat App</h1>");
            });
        }
    }
}

Client (HTML + Socket.IO)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Chat App</title>
    <script src="https://cdn.socket.io/4.0.0/socket.io.min.js"></script>
</head>
<body>
    <h1>Chat App</h1>
    <input id="message" autocomplete="off" />
    <button onclick="sendMessage()">Send</button>
    <ul id="messages"></ul>

    <script>
        const socket = io();

        socket.on('chat message', function(msg) {
            const item = document.createElement('li');
            item.textContent = msg;
            document.getElementById('messages').appendChild(item);
        });

        function sendMessage() {
            const messageInput = document.getElementById('message');
            const message = messageInput.value;
            socket.emit('chat message', message);
            messageInput.value = '';
        }
    </script>
</body>
</html>

Giải thích chi tiết từng dòng code:

  1. Server (C#):

    • Program class: Khởi động ứng dụng ASP.NET Core.
    • Startup class: Thiết lập các dịch vụ cho Socket.IO và cấu hình middleware.
    • ConfigureServices: Đăng ký dịch vụ Socket.IO.
    • Configure: Thiết lập đường dẫn gốc cho ứng dụng và gửi phản hồi khi truy cập.
  2. Client (HTML + Socket.IO):

    • Tạo giao diện đơn giản cho ứng dụng chat.
    • Sử dụng Socket.IO để kết nối đến server.
    • Xử lý sự kiện khi nhận được tin nhắn và gửi tin nhắn.

Yêu cầu hệ thống:

  • C# 5.0 trở lên
  • .NET Core 3.1 hoặc mới hơn
  • Thư viện Socket.IO cho .NET

Cách cài đặt các thư viện để chạy được đoạn mã C# trên:

  1. Tạo một project ASP.NET Core mới.
  2. Cài đặt thư viện Socket.IO bằng NuGet:
    dotnet add package SocketIoClientDotNet
    

Lời khuyên:

  • Nên thêm các tính năng như xác thực người dùng và lưu trữ lịch sử tin nhắn để cải thiện ứng dụng.
  • Thử nghiệm với các tính năng mở rộng như thông báo âm thanh hoặc thông báo hiện diện người dùng.
Tags: C#, Socket.IO


Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Hướng dẫn đọc nội dung file Excel bằng C#

Hướng dẫn chi tiết cách đọc nội dung từ file Excel (.xlsx, .xls) bằng C#, sử dụng thư viện EPPlus với các bước cài đặt và ví dụ minh họa cụ thể.
Chuyển chuỗi markdown sang HTML bằng C#

Hướng dẫn cách chuyển đổi chuỗi markdown thành HTML trong C# bằng cách sử dụng thư viện MarkdownSharp.
Tổng hợp tất cả các cách nối chuỗi trong C#

Hướng dẫn chi tiết về tất cả các cách nối chuỗi trong C#, bao gồm sử dụng toán tử nối chuỗi, phương thức nối chuỗi, và các cách tiếp cận hiệu quả khác.
Cách UPDATE dữ liệu từ database MySQL bằng C#

Hướng dẫn cách sử dụng Prepared Statements trong C# để cập nhật dữ liệu trong bảng MySQL một cách an toàn và hiệu quả với nhiều tham số.
Cách POST dữ liệu tới API bằng C#

Hướng dẫn cách gửi dữ liệu tới một API bằng phương thức POST trong C# sử dụng lớp HttpClient, giúp bạn dễ dàng thực hiện các yêu cầu với API.
Cách mở ứng dụng Notepad bằng C#

Hướng dẫn cách mở ứng dụng Notepad sử dụng C# thông qua lớp `Process` trong .NET. Bài viết này sẽ giúp lập trình viên C# biết cách thao tác với các ứng dụng bên ngoài thông qua mã lệnh đơn giản.
Cách tự động đăng nhập vào website sử dụng Selenium với Chrome trong C#

Hướng dẫn cách sử dụng Selenium trong C# để tự động đăng nhập vào một trang web. Bài viết sẽ sử dụng trình duyệt Chrome và trình bày cách thực hiện từng bước để tự động hóa quy trình đăng nhập.
Xác thực JSON Web Token (JWT) trong C#

Hướng dẫn cách triển khai xác thực JSON Web Token (JWT) trong C#. Bài viết sẽ chỉ ra cách tạo, ký và xác thực JWT để bảo mật API và xác thực người dùng.
Truyền Authentication Header Token khi POST dữ liệu tới API bằng C#

Hướng dẫn cách truyền Authentication Header Token khi gửi yêu cầu POST tới API bằng ngôn ngữ lập trình C# bằng cách sử dụng HttpClient và Bearer Token.
Gửi đoạn mã JavaScript vào website bằng Selenium trong C#

Hướng dẫn cách sử dụng Selenium trong C# để gửi một đoạn mã JavaScript vào một website mở trong trình duyệt Chrome. Bài viết sẽ cung cấp mã mẫu và giải thích chi tiết từng bước.

Đã thêm vào giỏ hàng