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:
-
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.
-
-
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:
- Tạo một project ASP.NET Core mới.
- 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.