ASP.NET Core - SignalR을 사용하는 작은 채팅 앱
빈 ASP.NET 웹앱을 만듭니다.
dotnet new web -o TinyChat
Program.cs
에서 SignalR
서비스를 추가하고 정적 파일을 제공하도록 설정하고 SignalR
허브를 매핑합니다.var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSignalR();
var app = builder.Build();
app.UseStaticFiles();
app.MapHub<ChatHub>("/ChatHub");
app.Run();
프로젝트 디렉터리에서 다음을 포함하는
ChatHub.cs
를 추가합니다.using Microsoft.AspNetCore.SignalR;
public class ChatHub : Hub
{
// this can be invoked from JavaScript
public async Task SendMessage(string username, string message)
{
// to all connections, invoke ReceiveMessage
await Clients.All.SendAsync("ReceiveMessage", username, message);
}
}
프로젝트 디렉토리에 폴더
wwwroot
를 추가합니다. 그런 다음 다음을 포함하는 chat.html
를 추가합니다.<!DOCTYPE html>
<html>
<head></head>
<body>
<input id='usernameInput' placeholder='username' />
<input id='messageInput' placeholder='message' />
<button id='sendButton'>Send</button>
<ul id='conversationList'></ul>
<script src='https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/6.0.8/signalr.min.js'></script>
<script src='/chat.js'></script>
</body>
</html>
wwwroot
에서 다음을 포함하는 chat.js
를 추가합니다."use strict";
document.addEventListener('DOMContentLoaded', function() {
var connection = new signalR.HubConnectionBuilder().withUrl("/ChatHub").build();
// Handler for receiving message. This will be invoked by the server.
connection.on("ReceiveMessage", function (username, message) {
var messageItem = document.createElement("li");
messageItem.textContent = `${username}: ${message}`;
var conversationList = document.querySelector("#conversationList");
conversationList.prepend(messageItem);
});
// Initiate connection and set callback for error.
connection.start().then(function () {
}).catch(function (err) {
return console.error(err.toString());
});
// Handler for sending message to the server.
document.querySelector("#sendButton").addEventListener("click", function (event) {
var username = document.querySelector("#usernameInput").value;
var message = document.querySelector("#messageInput").value;
connection.invoke("SendMessage", username, message)
.catch(function (err) {
return console.error(err.toString());
});
event.preventDefault();
});
});
dotnet run
를 사용하여 앱을 실행하고 https://localhost:<port>/chat.html
로 이동합니다. 자원
Microsoft Docs
Reference
이 문제에 관하여(ASP.NET Core - SignalR을 사용하는 작은 채팅 앱), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kazinix/aspnet-core-tiny-chat-app-using-signalr-fgh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)