콘솔로 동작하는 Signal-R 서버 코드 짜줘
먼저 .NET Core 3.1 이상의 버전을 사용해야 SignalR을 사용할 수 있습니다.
그리고 SignalR NuGet 패키지를 설치해야 합니다.
다음은 콘솔에서 동작하는 SignalR 서버 코드의 예시입니다.
using Microsoft.AspNetCore.SignalR;
using Microsoft.AspNetCore.SignalR.Client;
using Microsoft.AspNetCore.SignalR.Protocol;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleSignalRServer
{
class Program
{
static async Task Main(string[] args)
{
var host = Host.CreateDefaultBuilder()
.ConfigureServices(services =>
{
services.AddSignalR();
})
.Build();
await host.StartAsync();
Console.WriteLine("SignalR server started.");
while (true)
{
Console.WriteLine("Enter a message to broadcast:");
var message = Console.ReadLine();
if (!string.IsNullOrEmpty(message))
{
var hubContext = host.Services
.GetService<IHubContext<MyHub>>();
await hubContext.Clients.All
.SendAsync("BroadcastMessage", message);
}
}
}
}
public class MyHub : Hub
{
public Task BroadcastMessage(string message)
{
return Clients.All.SendAsync("BroadcastMessage", message);
}
}
}
위 코드에서는 MyHub 클래스를 만들어서 BroadcastMessage 메서드를 정의했습니다. 이 메서드는 연결된 모든 클라이언트에게 BroadcastMessage 메서드를 호출하라는 메시지를 보냅니다.
Main 메서드에서는 SignalR을 추가하고, 호스트를 시작합니다. 그리고 루프를 돌면서 사용자로부터 입력을 받고, BroadcastMessage 메서드를 호출하여 메시지를 클라이언트로 보냅니다.
실행해보기 위해서는 dotnet run 명령어를 실행하면 됩니다. 이 코드는 콘솔에서 동작하며, BroadcastMessage 메서드를 호출하면 해당 메시지가 클라이언트에게 브로드캐스트됩니다.
콘솔로 동작하는 Signal-R 서버 코드 짜줘! 단 네임스페이스는 "TeamViewer2.Server"으로 말야~
네, 이해했습니다!
다음은 콘솔에서 동작하는 SignalR 서버 코드의 예시입니다.
using Microsoft.AspNetCore.SignalR;
using Microsoft.AspNetCore.SignalR.Client;
using Microsoft.AspNetCore.SignalR.Protocol;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace TeamViewer2.Server
{
class Program
{
static async Task Main(string[] args)
{
var host = Host.CreateDefaultBuilder()
.ConfigureServices(services =>
{
services.AddSignalR();
})
.Build();
await host.StartAsync();
Console.WriteLine("SignalR server started.");
while (true)
{
Console.WriteLine("Enter a message to broadcast:");
var message = Console.ReadLine();
if (!string.IsNullOrEmpty(message))
{
var hubContext = host.Services
.GetService<IHubContext<MyHub>>();
await hubContext.Clients.All
.SendAsync("BroadcastMessage", message);
}
}
}
}
public class MyHub : Hub
{
public Task BroadcastMessage(string message)
{
return Clients.All.SendAsync("BroadcastMessage", message);
}
}
}
위 코드에서는 네임스페이스를 TeamViewer2.Server로 설정하고, MyHub 클래스를 만들어서 BroadcastMessage 메서드를 정의했습니다. 이 메서드는 연결된 모든 클라이언트에게 BroadcastMessage 메서드를 호출하라는 메시지를 보냅니다.
Main 메서드에서는 SignalR을 추가하고, 호스트를 시작합니다. 그리고 루프를 돌면서 사용자로부터 입력을 받고, BroadcastMessage 메서드를 호출하여 메시지를 클라이언트로 보냅니다.
실행해보기 위해서는 dotnet run 명령어를 실행하면 됩니다. 이 코드는 콘솔에서 동작하며, BroadcastMessage 메서드를 호출하면 해당 메시지가 클라이언트에게 브로드캐스트됩니다.
저도 GPT 살짝살짝 써보고 있는데요.
샘플코드에 살짝 요구조건을 추가하면 GPT도 내심 좋아하는 눈치네요. ![]()