|
Dreamine.Communication.Sockets 1.0.2
Dreamine.Communication.Sockets 통신 기능과 관련 API를 제공합니다.
|


Public 멤버 함수 | |
| TcpClientTransport (TcpClientTransportOptions options) | |
| TcpClientTransport (TcpClientTransportOptions options, IMessageProtocolAdapter protocolAdapter, IMessageFrameCodec frameCodec) | |
| async Task | ConnectAsync (CancellationToken cancellationToken=default) |
| async Task | DisconnectAsync (CancellationToken cancellationToken=default) |
| async Task | SendAsync (MessageEnvelope message, CancellationToken cancellationToken=default) |
| async ValueTask | DisposeAsync () |
속성 | |
| ConnectionState | State [get] |
| TransportKind | Kind [get] |
이벤트 | |
| EventHandler< MessageEnvelope >? | MessageReceived |
Private 멤버 함수 | |
| async Task | ReceiveLoopAsync (CancellationToken cancellationToken) |
| void | CleanupClient () |
| void | SetState (ConnectionState state) |
정적 Private 멤버 함수 | |
| static void | ValidateOptions (TcpClientTransportOptions options) |
Private 속성 | |
| readonly TcpClientTransportOptions | _options |
| readonly IMessageProtocolAdapter | _protocolAdapter |
| readonly IMessageFrameCodec | _frameCodec |
| TcpClient? | _client |
| CancellationTokenSource? | _receiveLoopCts |
| Task? | _receiveLoopTask |
| int | _state = (int)ConnectionState.Disconnected |
TCP 클라이언트 연결에서 구성 가능한 프레임과 프로토콜로 메시지를 송수신합니다.
TcpClientTransport.cs 파일의 20 번째 라인에서 정의되었습니다.
|
inline |
기본 Dreamine JSON 프로토콜과 길이 접두사 프레임으로 TCP 클라이언트를 초기화합니다.
| options | 서버 주소, 버퍼 및 연결 제한 시간 설정입니다. |
TcpClientTransport.cs 파일의 103 번째 라인에서 정의되었습니다.
|
inline |
TCP 설정과 사용자 지정 프로토콜 및 프레임 코덱으로 클라이언트를 초기화합니다.
| options | 서버 주소, 버퍼 및 연결 제한 시간 설정입니다. |
| protocolAdapter | 메시지와 외부 페이로드를 변환할 어댑터입니다. |
| frameCodec | TCP 스트림의 메시지 경계를 처리할 코덱입니다. |
| ArgumentNullException | options , protocolAdapter 또는 frameCodec 이 null인 경우 발생합니다. |
TcpClientTransport.cs 파일의 151 번째 라인에서 정의되었습니다.
다음을 참조함 : _frameCodec, _options, _protocolAdapter, ValidateOptions().

|
inlineprivate |
정리 예외를 전파하지 않고 TCP 클라이언트를 닫고 해제합니다.
TcpClientTransport.cs 파일의 528 번째 라인에서 정의되었습니다.
다음을 참조함 : _client.
다음에 의해서 참조됨 : ConnectAsync(), DisconnectAsync(), ReceiveLoopAsync(), SendAsync().

|
inline |
제한 시간 내에 TCP 서버에 연결하고 백그라운드 수신 루프를 시작합니다.
| cancellationToken | 연결 취소 요청을 감시하는 토큰입니다. |
| OperationCanceledException | 사용자 취소 또는 연결 제한 시간 만료 시 발생할 수 있습니다. |
TcpClientTransport.cs 파일의 225 번째 라인에서 정의되었습니다.
다음을 참조함 : _client, _options, _receiveLoopCts, _receiveLoopTask, CleanupClient(), ReceiveLoopAsync(), SetState(), State.

|
inline |
수신 루프를 중지하고 TCP 클라이언트 연결을 닫습니다.
| cancellationToken | 정리 후 연결 해제 취소 여부를 확인하는 토큰입니다. |
TcpClientTransport.cs 파일의 292 번째 라인에서 정의되었습니다.
다음을 참조함 : _receiveLoopCts, _receiveLoopTask, CleanupClient(), SetState(), State.
다음에 의해서 참조됨 : DisposeAsync().


|
inline |
TCP 연결과 수신 루프 리소스를 비동기적으로 해제합니다.
TcpClientTransport.cs 파일의 426 번째 라인에서 정의되었습니다.
다음을 참조함 : DisconnectAsync().

|
inlineprivate |
TCP 스트림에서 프레임을 계속 읽어 메시지로 디코딩하고 수신 이벤트를 발생시킵니다.
| cancellationToken | 수신 루프 종료 토큰입니다. |
TcpClientTransport.cs 파일의 455 번째 라인에서 정의되었습니다.
다음을 참조함 : _client, _frameCodec, _protocolAdapter, CleanupClient(), MessageReceived, SetState(), State.
다음에 의해서 참조됨 : ConnectAsync().


|
inline |
메시지를 외부 프로토콜과 프레임 형식으로 인코딩해 TCP 서버로 전송합니다.
| message | 전송할 메시지입니다. |
| cancellationToken | 프레임 쓰기 취소 요청을 감시하는 토큰입니다. |
| ArgumentNullException | 메시지가 null인 경우 발생합니다. |
| InvalidOperationException | TCP 클라이언트가 연결되지 않은 경우 발생합니다. |
TcpClientTransport.cs 파일의 382 번째 라인에서 정의되었습니다.
다음을 참조함 : _client, _frameCodec, _protocolAdapter, CleanupClient(), SetState(), State.

|
inlineprivate |
원자적 연산으로 현재 연결 상태를 설정합니다.
| state | 저장할 새 상태입니다. |
TcpClientTransport.cs 파일의 565 번째 라인에서 정의되었습니다.
다음을 참조함 : _state.
다음에 의해서 참조됨 : ConnectAsync(), DisconnectAsync(), ReceiveLoopAsync(), SendAsync().

|
inlinestaticprivate |
TCP 호스트, 포트, 버퍼 및 연결 제한 시간 설정을 검증합니다.
| options | 검증할 TCP 클라이언트 설정입니다. |
| ArgumentException | 호스트가 비어 있는 경우 발생합니다. |
| ArgumentOutOfRangeException | 수치 설정이 허용 범위를 벗어난 경우 발생합니다. |
TcpClientTransport.cs 파일의 602 번째 라인에서 정의되었습니다.
다음을 참조함 : Dreamine.Communication.Sockets.Options.TcpClientTransportOptions.ConnectTimeoutMs, Dreamine.Communication.Sockets.Options.TcpClientTransportOptions.Host, Dreamine.Communication.Sockets.Options.TcpClientTransportOptions.Port, Dreamine.Communication.Sockets.Options.TcpClientTransportOptions.ReceiveBufferSize, Dreamine.Communication.Sockets.Options.TcpClientTransportOptions.SendBufferSize.
다음에 의해서 참조됨 : TcpClientTransport().

|
private |
client 값을 보관합니다.
TcpClientTransport.cs 파일의 58 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : CleanupClient(), ConnectAsync(), ReceiveLoopAsync(), SendAsync().
|
private |
frame Codec 값을 보관합니다.
TcpClientTransport.cs 파일의 48 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ReceiveLoopAsync(), SendAsync(), TcpClientTransport().
|
private |
options 값을 보관합니다.
TcpClientTransport.cs 파일의 30 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ConnectAsync(), TcpClientTransport().
|
private |
protocol Adapter 값을 보관합니다.
TcpClientTransport.cs 파일의 39 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ReceiveLoopAsync(), SendAsync(), TcpClientTransport().
|
private |
receive Loop Cts 값을 보관합니다.
TcpClientTransport.cs 파일의 67 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ConnectAsync(), DisconnectAsync().
|
private |
receive Loop Task 값을 보관합니다.
TcpClientTransport.cs 파일의 76 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ConnectAsync(), DisconnectAsync().
|
private |
|
get |
TCP 전송 방식을 가져옵니다.
TcpClientTransport.cs 파일의 181 번째 라인에서 정의되었습니다.
|
get |
스레드 안전하게 현재 TCP 연결 상태를 가져옵니다.
TcpClientTransport.cs 파일의 171 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ConnectAsync(), DisconnectAsync(), ReceiveLoopAsync(), SendAsync().
| EventHandler<MessageEnvelope>? Dreamine.Communication.Sockets.Clients.TcpClientTransport.MessageReceived |
완전한 TCP 프레임을 메시지로 디코딩했을 때 발생합니다.
TcpClientTransport.cs 파일의 191 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ReceiveLoopAsync().