KuruKuru
431
2021-09-20 12:13:58
1
85

.net core websocket 비동기 하는법.


안녕하세요. 

.net core websocketSharp 프레임 워크로 websocket 공부를 하고 있습니다.


websocket에서 정보를 받아오는 동안 프론트가 멈추지 않도록, async로 받고 싶은데요.



Uri serverUri = new Uri("wss://api.upbit.com/websocket/v1");
            using (var ws = new WebSocket(serverUri.ToString()))
            {
                ws.OnMessage += (sender, e) =>
                    Console.WriteLine(e.Data);

                RequestCoinInfoDTO requestDTO = new();
                requestDTO.Test= "test";

                var requestJson = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(requestDTO));

                ws.ConnectAsync(); // 이곳
                ws.SendAsync(requestJson); // 이곳
                
            }



인터넷에 찾아보면 주석 친 부분들을 다들 ws.Connect() 와 ws.Send()로 사용하더라고요.  그리고 ws.ConnectAsync()와 ws.SendAsync앞에 await가 붙지를 않습니다. (둘다 리턴값이 Task가 아님)


비동기로 사용하는 방법이 없을 까요? Task.run으로 async함수들을 감싸서 사용하거나,  웹소켓은 그냥 async로 하지않아도 비동기로 작동하나요?

0
  • 답변 1

  • 안전라이딩
    1k
    2021-09-20 17:03:47

    https://docs.microsoft.com/ko-kr/dotnet/api/system.net.sockets.socketasynceventargs.completed?view=net-5.0

  • 로그인을 하시면 답변을 등록할 수 있습니다.