SignalR是一個Microsoft開發的用于實現實時通信的庫,可以用于構建實時聊天應用。以下是實現實時聊天應用的基本步驟:
public class ChatHub : Hub
{
public void Send(string message)
{
// 發送消息給所有連接的客戶端
Clients.All.SendAsync("ReceiveMessage", message);
}
}
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR();
}
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<ChatHub>("/chatHub");
});
const connection = new signalR.HubConnectionBuilder()
.withUrl("/chatHub")
.build();
connection.on("ReceiveMessage", (message) => {
// 處理收到的消息
});
connection.start().then(() => {
// 連接成功
}).catch((error) => {
// 連接失敗
});
function sendMessage(message) {
connection.invoke("Send", message);
}
<input type="text" id="messageInput">
<button onclick="sendMessage(document.getElementById('messageInput').value)">Send</button>
通過以上步驟,就可以實現一個簡單的實時聊天應用。當用戶在輸入框中輸入消息并點擊發送按鈕時,消息會通過SignalR實時傳輸到服務器,并發送給所有連接的客戶端,實現實時聊天的效果。