본문 바로가기
  • _^**_
무근본 IT 지식 공유

C#으로 웹소켓 서버 구현해보기

by 크리드로얄워터 2023. 12. 19.
반응형

C# 웹소켓 서버 기본 구조

1. 웹소켓 서버 초기화:


using System.Net.WebSockets;
using System.Threading;

// WebSocket 서버를 위한 기본 클래스 생성
public class WebSocketServer
{
    private HttpListener _httpListener;

    public WebSocketServer(string httpListenerPrefix)
    {
        _httpListener = new HttpListener();
        _httpListener.Prefixes.Add(httpListenerPrefix);
    }

    public async Task Start()
    {
        _httpListener.Start();
        while (true)
        {
            var context = await _httpListener.GetContextAsync();
            // WebSocket 연결 처리 로직
        }
    }
}


2. 클라이언트 연결 처리:


// 클라이언트 연결을 기다리고 처리하는 메서드
private async Task HandleClient(HttpListenerContext context)
{
    WebSocketContext webSocketContext = await context.AcceptWebSocketAsync(null);
    WebSocket webSocket = webSocketContext.WebSocket;

    // 여기에서 메시지 수신 및 송신 처리
}


3. 메시지 수신 및 처리:


private async Task ReceiveMessages(WebSocket webSocket)
{
    byte[] buffer = new byte[1024 * 4];
    while (webSocket.State == WebSocketState.Open)
    {
        var result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
        // 여기에서 버퍼에 있는 데이터를 처리
    }
}


4. 파일 업로드 로직:

파일 업로드 로직은 웹소켓을 통해 받은 데이터를 서버의 특정 위치에 저장한 후, 그 파일을 다른 서버로 전송하는 것을 포함합니다. 이 부분은 HTTP 클라이언트 라이브러리를 사용하여 구현할 수 있습니다.

반응형

댓글