SampleSmart 1.0.0.0
SampleSmart 사용 방법을 보여 주는 예제 프로젝트입니다.
로딩중...
검색중...
일치하는것 없음
SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime 클래스 참조sealed

더 자세히 ...

Public 멤버 함수

 CommunicationSampleRuntime (IMessageBus messageBus)
void AddInMemoryChannel ()
async Task ConnectInMemoryAsync ()
async Task DisconnectInMemoryAsync ()
async Task SendInMemoryAsync (string text)
void ReceiveInMemory (string text)
async Task StartTcpServerAsync (string protocol, string encodingName=PlainTextProtocolOptions.Utf8EncodingName, string sendTargetMode=nameof(TcpServerSendTargetMode.Broadcast), bool echoEnabled=false)
void UpdateTcpServerOptions (string protocol, string encodingName=PlainTextProtocolOptions.Utf8EncodingName, string sendTargetMode=nameof(TcpServerSendTargetMode.Broadcast), bool echoEnabled=false)
async Task StopTcpServerAsync ()
async Task SendTcpServerAsync (string protocol, string text, string encodingName=PlainTextProtocolOptions.Utf8EncodingName, string sendTargetMode=nameof(TcpServerSendTargetMode.Broadcast))
async Task ConnectTcpClientAsync (string protocol, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
async Task DisconnectTcpClientAsync ()
async Task SendTcpClientAsync (string protocol, string text, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
async Task StopAllTcpAsync ()
async Task StartUdpLoopbackAsync (string protocol, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
async Task ConnectUdpPeerAAsync (string protocol, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
async Task ConnectUdpPeerBAsync (string protocol, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
async Task DisconnectUdpPeerAAsync ()
async Task DisconnectUdpPeerBAsync ()
async Task StopAllUdpAsync ()
async Task SendUdpPeerAAsync (string protocol, string text, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
async Task SendUdpPeerBAsync (string protocol, string text, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
async Task ConnectSerialAsync (string portName, int baudRate, string protocol, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
async Task DisconnectSerialAsync ()
async Task SendSerialAsync (string protocol, string text, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
async Task ConnectRabbitMqAsync (string host, int port, string virtualHost, string userName, string password, string exchangeName, string queueName, string routingKey)
async Task SubscribeRabbitMqAsync (string exchangeName, string queueName, string routingKey)
async Task PublishRabbitMqAsync (string exchangeName, string routingKey, string text)
async Task DisconnectRabbitMqAsync ()
async Task StopAllAsync ()

속성

CommunicationMonitorViewModel Monitor [get]
IReadOnlyList< string > TcpProtocols [get]
IReadOnlyList< string > SerialProtocols [get]
IReadOnlyList< string > UdpProtocols [get]
IReadOnlyList< string > TextEncodings [get]
IReadOnlyList< string > TcpServerSendTargetModes [get]
IReadOnlyList< string > UdpTextEncodings [get]

Private 멤버 함수

async Task PrepareTcpClientTransportAsync (string protocol, string encodingName)
async Task SubscribeInMemoryAsync ()
async void OnTcpServerMessageReceived (object? sender, MessageEnvelope message)
void AttachTcpResilientStateMonitor (IMessageTransport transport, string channelName)
void AttachTcpServerClientCountMonitor (TcpServerTransport tcpServerTransport, string protocol, string encodingName)
void UpdateTcpServerDescription (string protocol, string encodingName, int clientCount, TcpServerSendTargetMode targetMode, bool echoEnabled)
void AttachTcpClientQueueMonitor (IMessageTransport transport, string protocol, string encodingName, string channelName)
void OnTcpClientMessageReceived (object? sender, MessageEnvelope message)
void OnUdpPeerAMessageReceived (object? sender, MessageEnvelope message)
void OnUdpPeerBMessageReceived (object? sender, MessageEnvelope message)
void OnSerialMessageReceived (object? sender, MessageEnvelope message)
void EnsureTcpServerChannel (string protocol, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
void EnsureTcpClientChannel (string protocol, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
void EnsureUdpPeerChannel (string peerName, string protocol, string encodingName)
void EnsureSerialChannel ()
void EnsureRabbitMqChannel ()
string GetSerialChannelName ()
void AddRabbitMqErrorLog (string name, string text)

정적 Private 멤버 함수

static ReconnectPolicy CreateSampleReconnectPolicy ()
static OutboundQueueOptions CreateSampleOutboundQueueOptions ()
static OutboundQueueOptions CreateSampleServerOutboundQueueOptions ()
static string CreateTcpServerDescription (string protocol, string encodingName, int port, int clientCount, TcpServerSendTargetMode targetMode, bool echoEnabled)
static IMessageProtocolAdapter CreateProtocolAdapter (string protocol, string routePrefix="tcp", string namePrefix="Tcp", string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
static IMessageFrameCodec CreateFrameCodec (string protocol, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
static int GetTcpPort (string protocol)
static string GetTcpServerChannelName (string protocol, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
static string GetTcpClientChannelName (string protocol, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
static string GetUdpPeerChannelName (string peerName, string protocol, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
static string NormalizeTextEncodingName (string encodingName)
static int GetUdpLocalPort (string peerName)
static int GetUdpRemotePort (string peerName)
static string NormalizeUdpPeerName (string peerName)
static MessageEnvelope CreateTcpMessageByProtocol (string protocol, string direction, string text, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
static MessageEnvelope CreateUdpMessageByProtocol (string protocol, string direction, string text, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
static MessageEnvelope CreateSerialMessageByProtocol (string protocol, string direction, string text, string encodingName=PlainTextProtocolOptions.Utf8EncodingName)
static MessageEnvelope CreateRabbitMqMessage (string direction, string route, string text)
static MessageEnvelope CreateTextMessage (string name, string route, string text, string protocol)
static byte[] EnsureJsonPayload (string text)
static string EscapeJsonString (string value)
static TcpServerSendTargetMode NormalizeTcpServerSendTargetMode (string? sendTargetMode)
static string NormalizeProtocol (string? protocol)
static string NormalizeText (string? value, string defaultValue)
static void RunOnUiThread (Action action)

Private 속성

readonly IMessageBus _messageBus
bool _isInMemorySubscribed
bool _isRabbitMqSubscribed
IMessageTransport? _tcpServer
TcpServerTransport? _rawTcpServer
IMessageTransport? _tcpClient
UdpTransport? _udpPeerA
UdpTransport? _udpPeerB
SerialPortTransport? _serialTransport
RabbitMqMessageBus? _rabbitMqBus
string _currentServerProtocol = PlainTextProtocol
string _currentClientProtocol = PlainTextProtocol
string _currentServerEncoding = PlainTextProtocolOptions.Utf8EncodingName
string _currentClientEncoding = PlainTextProtocolOptions.Utf8EncodingName
TcpServerSendTargetMode _currentServerSendTargetMode = TcpServerSendTargetMode.Broadcast
bool _currentServerEchoEnabled
string _currentUdpPeerAProtocol = PlainTextProtocol
string _currentUdpPeerBProtocol = PlainTextProtocol
string _currentUdpPeerAEncoding = PlainTextProtocolOptions.Utf8EncodingName
string _currentUdpPeerBEncoding = PlainTextProtocolOptions.Utf8EncodingName
string _currentSerialProtocol = RawAvailableProtocol
string _currentSerialEncoding = PlainTextProtocolOptions.Utf8EncodingName
string _currentSerialPortName = string.Empty
int _currentSerialBaudRate = 9600
string _currentRabbitMqHost = "localhost"
int _currentRabbitMqPort = 5672
string _currentRabbitMqVirtualHost = "/"
string _currentRabbitMqExchangeName = "dreamine.sample.exchange"
string _currentRabbitMqQueueName = "dreamine.sample.queue"
string _currentRabbitMqRoutingKey = "dreamine.sample.route"

정적 Private 속성

const string InMemoryChannelName = "InMemory-Communication"
const string InMemoryRouteName = "sample.communication.message"
const string RabbitMqChannelName = "RabbitMQ-MessageBus"
const string RabbitMqProtocol = "RabbitMQ"
const string DreamineEnvelopeProtocol = "DreamineEnvelope"
const string PlainTextProtocol = "PlainText"
const string RawAvailableProtocol = "RawAvailable"
const string RawJsonProtocol = "RawJson"
const int DreamineProtocolPort = 15001
const int PlainTextProtocolPort = 15002
const int RawAvailableProtocolPort = 15002
const int RawJsonProtocolPort = 15003
const int UdpPeerALocalPort = 16001
const int UdpPeerBLocalPort = 16002

상세한 설명

Communication 샘플 전체에서 공유되는 Runtime 컨텍스트입니다.

이 클래스는 Communication 샘플 탭들이 공유하는 Monitor, InMemory MessageBus, TCP Server, TCP Client, Serial Port, RabbitMQ MessageBus 인스턴스를 관리합니다.

CommunicationSampleRuntime.cs 파일의 39 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ CommunicationSampleRuntime()

SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.CommunicationSampleRuntime ( IMessageBus messageBus)
inline

CommunicationSampleRuntime 클래스의 새 인스턴스를 초기화합니다.

매개변수
messageBusInMemory 샘플에 사용할 MessageBus입니다.
예외
ArgumentNullException필수 입력 인자 중 하나가 null인 경우 발생합니다.

CommunicationSampleRuntime.cs 파일의 472 번째 라인에서 정의되었습니다.

473 {
474 _messageBus = messageBus ?? throw new ArgumentNullException(nameof(messageBus));
475 Monitor = new CommunicationMonitorViewModel();
476
477 _ = SubscribeInMemoryAsync();
478 }

다음을 참조함 : _messageBus, Monitor, SubscribeInMemoryAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 함수 문서화

◆ AddInMemoryChannel()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.AddInMemoryChannel ( )
inline

InMemory 채널을 추가합니다.

CommunicationSampleRuntime.cs 파일의 584 번째 라인에서 정의되었습니다.

585 {
586 if (Monitor.Channels.Any(x => x.Name == InMemoryChannelName))
587 {
588 return;
589 }
590
591 Monitor.AddChannel(
592 InMemoryChannelName,
593 TransportKind.InMemory,
594 "SampleSmart in-memory communication channel.");
595 }

다음을 참조함 : InMemoryChannelName, Monitor.

다음에 의해서 참조됨 : ConnectInMemoryAsync(), DisconnectInMemoryAsync(), ReceiveInMemory(), SendInMemoryAsync().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ AddRabbitMqErrorLog()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.AddRabbitMqErrorLog ( string name,
string text )
inlineprivate

Rabbit Mq Error Log 항목을 추가합니다.

매개변수
namename에 사용할 string 값입니다.
texttext에 사용할 string 값입니다.

CommunicationSampleRuntime.cs 파일의 4398 번째 라인에서 정의되었습니다.

4401 {
4402 var message = CreateTextMessage(
4403 name,
4404 _currentRabbitMqRoutingKey,
4405 text,
4406 RabbitMqProtocol);
4407
4408 Monitor.AddReceiveLog(
4409 RabbitMqChannelName,
4410 TransportKind.RabbitMq,
4411 message);
4412 }

다음을 참조함 : _currentRabbitMqRoutingKey, CreateTextMessage(), Monitor, RabbitMqChannelName, RabbitMqProtocol.

다음에 의해서 참조됨 : ConnectRabbitMqAsync(), PublishRabbitMqAsync(), SubscribeRabbitMqAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ AttachTcpClientQueueMonitor()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.AttachTcpClientQueueMonitor ( IMessageTransport transport,
string protocol,
string encodingName,
string channelName )
inlineprivate

대상 객체에 동작을 연결합니다.

매개변수
transporttransport에 사용할 IMessageTransport 값입니다.
protocolprotocol에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.
channelNamechannel Name에 사용할 string 값입니다.

CommunicationSampleRuntime.cs 파일의 3014 번째 라인에서 정의되었습니다.

3019 {
3020 if (transport is not ResilientMessageTransport resilientTransport)
3021 {
3022 return;
3023 }
3024
3025 resilientTransport.QueueCountChanged += (_, queueCount) =>
3026 {
3027 var queueStatusMessage = CreateTcpMessageByProtocol(
3028 protocol,
3029 "Client.QueueStatus",
3030 $"QueueCount={queueCount}, State={resilientTransport.State}",
3031 encodingName);
3032
3033 RunOnUiThread(() =>
3034 {
3035 Monitor.AddReceiveLog(
3036 channelName,
3037 TransportKind.Tcp,
3038 queueStatusMessage);
3039
3040 Monitor.UpdateChannelState(
3041 channelName,
3042 resilientTransport.State);
3043 });
3044 };
3045 }

다음을 참조함 : CreateTcpMessageByProtocol(), Monitor, RunOnUiThread().

다음에 의해서 참조됨 : PrepareTcpClientTransportAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ AttachTcpResilientStateMonitor()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.AttachTcpResilientStateMonitor ( IMessageTransport transport,
string channelName )
inlineprivate

대상 객체에 동작을 연결합니다.

매개변수
transporttransport에 사용할 IMessageTransport 값입니다.
channelNamechannel Name에 사용할 string 값입니다.

CommunicationSampleRuntime.cs 파일의 2763 번째 라인에서 정의되었습니다.

2766 {
2767 if (transport is not ResilientMessageTransport resilientTransport)
2768 {
2769 return;
2770 }
2771
2772 resilientTransport.StateChanged += (_, state) =>
2773 {
2774 RunOnUiThread(() =>
2775 {
2776 Monitor.UpdateChannelState(
2777 channelName,
2778 state);
2779 });
2780 };
2781 }

다음을 참조함 : Monitor, RunOnUiThread().

다음에 의해서 참조됨 : PrepareTcpClientTransportAsync(), StartTcpServerAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ AttachTcpServerClientCountMonitor()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.AttachTcpServerClientCountMonitor ( TcpServerTransport tcpServerTransport,
string protocol,
string encodingName )
inlineprivate

대상 객체에 동작을 연결합니다.

매개변수
tcpServerTransporttcp Server Transport에 사용할 TcpServerTransport 값입니다.
protocolprotocol에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.

CommunicationSampleRuntime.cs 파일의 2815 번째 라인에서 정의되었습니다.

2819 {
2820 tcpServerTransport.ConnectedClientCountChanged += (_, clientCount) =>
2821 {
2822 RunOnUiThread(() =>
2823 {
2824 UpdateTcpServerDescription(
2825 protocol,
2826 encodingName,
2827 clientCount,
2828 _currentServerSendTargetMode,
2829 _currentServerEchoEnabled);
2830 });
2831 };
2832 }

다음을 참조함 : _currentServerEchoEnabled, _currentServerSendTargetMode, RunOnUiThread(), UpdateTcpServerDescription().

다음에 의해서 참조됨 : StartTcpServerAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ConnectInMemoryAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.ConnectInMemoryAsync ( )
inline

InMemory MessageBus에 연결합니다.

반환값
Connect In Memory Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 613 번째 라인에서 정의되었습니다.

614 {
615 AddInMemoryChannel();
616
617 await _messageBus.ConnectAsync();
618
619 Monitor.UpdateChannelState(
620 InMemoryChannelName,
621 ConnectionState.Connected);
622 }

다음을 참조함 : _messageBus, AddInMemoryChannel(), InMemoryChannelName, Monitor.

다음에 의해서 참조됨 : SendInMemoryAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ConnectRabbitMqAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.ConnectRabbitMqAsync ( string host,
int port,
string virtualHost,
string userName,
string password,
string exchangeName,
string queueName,
string routingKey )
inline

RabbitMQ에 연결합니다.

매개변수
hostRabbitMQ Host입니다.
portRabbitMQ Port입니다.
virtualHostRabbitMQ VirtualHost입니다.
userNameRabbitMQ 사용자 이름입니다.
passwordRabbitMQ 비밀번호입니다.
exchangeNameExchange 이름입니다.
queueNameQueue 이름입니다.
routingKeyRoutingKey입니다.
반환값
Connect Rabbit Mq Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 2209 번째 라인에서 정의되었습니다.

2218 {
2219 host = NormalizeText(host, "localhost");
2220 virtualHost = NormalizeText(virtualHost, "/");
2221 userName = NormalizeText(userName, "guest");
2222 password = NormalizeText(password, "guest");
2223 exchangeName = NormalizeText(exchangeName, "dreamine.sample.exchange");
2224 queueName = NormalizeText(queueName, "dreamine.sample.queue");
2225 routingKey = NormalizeText(routingKey, "dreamine.sample.route");
2226
2227 if (port <= 0 || port > 65535)
2228 {
2229 port = 5672;
2230 }
2231
2232 if (_rabbitMqBus is not null &&
2233 _rabbitMqBus.State == ConnectionState.Connected &&
2234 _currentRabbitMqHost == host &&
2235 _currentRabbitMqPort == port &&
2236 _currentRabbitMqVirtualHost == virtualHost &&
2237 _currentRabbitMqExchangeName == exchangeName &&
2238 _currentRabbitMqQueueName == queueName &&
2239 _currentRabbitMqRoutingKey == routingKey)
2240 {
2241 return;
2242 }
2243
2244 if (_rabbitMqBus is not null)
2245 {
2246 await DisconnectRabbitMqAsync();
2247 }
2248
2249 _currentRabbitMqHost = host;
2250 _currentRabbitMqPort = port;
2251 _currentRabbitMqVirtualHost = virtualHost;
2252 _currentRabbitMqExchangeName = exchangeName;
2253 _currentRabbitMqQueueName = queueName;
2254 _currentRabbitMqRoutingKey = routingKey;
2255 _isRabbitMqSubscribed = false;
2256
2257 EnsureRabbitMqChannel();
2258
2259 _rabbitMqBus = new RabbitMqMessageBus(
2260 new RabbitMqMessageBusOptions
2261 {
2262 HostName = host,
2263 Port = port,
2264 VirtualHost = virtualHost,
2265 UserName = userName,
2266 Password = password,
2267 ExchangeName = exchangeName,
2268 QueueName = queueName,
2269 RoutingKey = routingKey
2270 });
2271
2272 try
2273 {
2274 await _rabbitMqBus.ConnectAsync();
2275
2276 Monitor.UpdateChannelState(
2277 RabbitMqChannelName,
2278 ConnectionState.Connected);
2279 }
2280 catch (Exception ex)
2281 {
2282 Monitor.UpdateChannelState(
2283 RabbitMqChannelName,
2284 ConnectionState.Faulted);
2285
2286 AddRabbitMqErrorLog("RabbitMQ.Connect.Failed", ex.Message);
2287 }
2288 }

다음을 참조함 : _currentRabbitMqExchangeName, _currentRabbitMqHost, _currentRabbitMqPort, _currentRabbitMqQueueName, _currentRabbitMqRoutingKey, _currentRabbitMqVirtualHost, _isRabbitMqSubscribed, _rabbitMqBus, AddRabbitMqErrorLog(), DisconnectRabbitMqAsync(), EnsureRabbitMqChannel(), Monitor, NormalizeText(), RabbitMqChannelName.

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ConnectSerialAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.ConnectSerialAsync ( string portName,
int baudRate,
string protocol,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inline

선택된 설정으로 Serial Port를 연결합니다.

매개변수
portNameSerial Port 이름입니다.
baudRateBaudRate입니다.
protocol프로토콜 이름입니다.
encodingNamePlainText 외부 송수신 인코딩 이름입니다.
반환값
Connect Serial Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1954 번째 라인에서 정의되었습니다.

1959 {
1960 if (string.IsNullOrWhiteSpace(portName))
1961 {
1962 return;
1963 }
1964
1965 protocol = NormalizeProtocol(protocol);
1966 encodingName = NormalizeTextEncodingName(encodingName);
1967
1968 if (_serialTransport is not null &&
1969 _serialTransport.State == ConnectionState.Connected &&
1970 _currentSerialPortName == portName &&
1971 _currentSerialBaudRate == baudRate &&
1972 _currentSerialProtocol == protocol &&
1973 _currentSerialEncoding == encodingName)
1974 {
1975 return;
1976 }
1977
1978 if (_serialTransport is not null)
1979 {
1980 await DisconnectSerialAsync();
1981 }
1982
1983 _currentSerialPortName = portName;
1984 _currentSerialBaudRate = baudRate;
1985 _currentSerialProtocol = protocol;
1986 _currentSerialEncoding = encodingName;
1987
1988 EnsureSerialChannel();
1989
1990 _serialTransport = new SerialPortTransport(
1991 new SerialPortTransportOptions
1992 {
1993 PortName = portName,
1994 BaudRate = baudRate
1995 },
1996 CreateProtocolAdapter(
1997 protocol,
1998 "serial",
1999 "Serial",
2000 encodingName),
2001 CreateFrameCodec(protocol, encodingName));
2002
2003 _serialTransport.MessageReceived += OnSerialMessageReceived;
2004
2005 await _serialTransport.ConnectAsync();
2006
2007 Monitor.UpdateChannelState(
2008 GetSerialChannelName(),
2009 ConnectionState.Connected);
2010 }

다음을 참조함 : _currentSerialBaudRate, _currentSerialEncoding, _currentSerialPortName, _currentSerialProtocol, _serialTransport, CreateFrameCodec(), CreateProtocolAdapter(), DisconnectSerialAsync(), EnsureSerialChannel(), GetSerialChannelName(), Monitor, NormalizeProtocol(), NormalizeTextEncodingName(), OnSerialMessageReceived().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ConnectTcpClientAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.ConnectTcpClientAsync ( string protocol,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inline

선택된 프로토콜로 TCP Client를 연결합니다.

매개변수
protocol프로토콜 이름입니다.
encodingNamePlainText 외부 송수신 인코딩 이름입니다.
반환값
Connect Tcp Client Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1133 번째 라인에서 정의되었습니다.

1136 {
1137 protocol = NormalizeProtocol(protocol);
1138 encodingName = NormalizeTextEncodingName(encodingName);
1139
1140 if (_tcpClient is not null &&
1141 _tcpClient.State == ConnectionState.Connected &&
1142 _currentClientProtocol == protocol &&
1143 _currentClientEncoding == encodingName)
1144 {
1145 return;
1146 }
1147
1148 await PrepareTcpClientTransportAsync(protocol, encodingName);
1149
1150 if (_tcpClient is null)
1151 {
1152 return;
1153 }
1154
1155 var channelName = GetTcpClientChannelName(protocol, encodingName);
1156
1157 Monitor.UpdateChannelState(channelName, ConnectionState.Connecting);
1158
1159 try
1160 {
1161 await _tcpClient.ConnectAsync();
1162
1163 Monitor.UpdateChannelState(
1164 channelName,
1165 _tcpClient.State);
1166 }
1167 catch
1168 {
1169 // ResilientMessageTransport의 내부 WatchLoop가 계속 재연결을 시도합니다.
1170 // 수동 Connect 실패는 UI 상태만 Connecting으로 유지하고 예외를 샘플 밖으로 전파하지 않습니다.
1171 Monitor.UpdateChannelState(channelName, ConnectionState.Connecting);
1172 }
1173 }

다음을 참조함 : _currentClientEncoding, _currentClientProtocol, _tcpClient, GetTcpClientChannelName(), Monitor, NormalizeProtocol(), NormalizeTextEncodingName(), PrepareTcpClientTransportAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ConnectUdpPeerAAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.ConnectUdpPeerAAsync ( string protocol,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inline

선택된 프로토콜로 UDP Peer A를 시작합니다.

매개변수
protocol프로토콜 이름입니다.
encodingNamePlainText 외부 송수신 인코딩 이름입니다.
반환값
Connect Udp Peer A Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1502 번째 라인에서 정의되었습니다.

1505 {
1506 protocol = NormalizeProtocol(protocol);
1507 encodingName = NormalizeTextEncodingName(encodingName);
1508
1509 if (_udpPeerA is not null &&
1510 _udpPeerA.State == ConnectionState.Connected &&
1511 _currentUdpPeerAProtocol == protocol &&
1512 _currentUdpPeerAEncoding == encodingName)
1513 {
1514 return;
1515 }
1516
1517 if (_udpPeerA is not null)
1518 {
1519 await DisconnectUdpPeerAAsync();
1520 }
1521
1522 _currentUdpPeerAProtocol = protocol;
1523 _currentUdpPeerAEncoding = encodingName;
1524
1525 EnsureUdpPeerChannel("A", protocol, encodingName);
1526
1527 _udpPeerA = new UdpTransport(
1528 new UdpTransportOptions
1529 {
1530 LocalHost = "127.0.0.1",
1531 LocalPort = UdpPeerALocalPort,
1532 RemoteHost = "127.0.0.1",
1533 RemotePort = UdpPeerBLocalPort,
1534 ReuseAddress = true
1535 },
1536 CreateProtocolAdapter(
1537 protocol,
1538 "udp",
1539 "Udp",
1540 encodingName));
1541
1542 _udpPeerA.MessageReceived += OnUdpPeerAMessageReceived;
1543
1544 await _udpPeerA.ConnectAsync();
1545
1546 Monitor.UpdateChannelState(
1547 GetUdpPeerChannelName("A", protocol, encodingName),
1548 ConnectionState.Connected);
1549 }

다음을 참조함 : _currentUdpPeerAEncoding, _currentUdpPeerAProtocol, _udpPeerA, CreateProtocolAdapter(), DisconnectUdpPeerAAsync(), EnsureUdpPeerChannel(), GetUdpPeerChannelName(), Monitor, NormalizeProtocol(), NormalizeTextEncodingName(), OnUdpPeerAMessageReceived(), UdpPeerALocalPort, UdpPeerBLocalPort.

다음에 의해서 참조됨 : SendUdpPeerAAsync(), StartUdpLoopbackAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ConnectUdpPeerBAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.ConnectUdpPeerBAsync ( string protocol,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inline

선택된 프로토콜로 UDP Peer B를 시작합니다.

매개변수
protocol프로토콜 이름입니다.
encodingNamePlainText 외부 송수신 인코딩 이름입니다.
반환값
Connect Udp Peer B Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1583 번째 라인에서 정의되었습니다.

1586 {
1587 protocol = NormalizeProtocol(protocol);
1588 encodingName = NormalizeTextEncodingName(encodingName);
1589
1590 if (_udpPeerB is not null &&
1591 _udpPeerB.State == ConnectionState.Connected &&
1592 _currentUdpPeerBProtocol == protocol &&
1593 _currentUdpPeerBEncoding == encodingName)
1594 {
1595 return;
1596 }
1597
1598 if (_udpPeerB is not null)
1599 {
1600 await DisconnectUdpPeerBAsync();
1601 }
1602
1603 _currentUdpPeerBProtocol = protocol;
1604 _currentUdpPeerBEncoding = encodingName;
1605
1606 EnsureUdpPeerChannel("B", protocol, encodingName);
1607
1608 _udpPeerB = new UdpTransport(
1609 new UdpTransportOptions
1610 {
1611 LocalHost = "127.0.0.1",
1612 LocalPort = UdpPeerBLocalPort,
1613 RemoteHost = "127.0.0.1",
1614 RemotePort = UdpPeerALocalPort,
1615 ReuseAddress = true
1616 },
1617 CreateProtocolAdapter(
1618 protocol,
1619 "udp",
1620 "Udp",
1621 encodingName));
1622
1623 _udpPeerB.MessageReceived += OnUdpPeerBMessageReceived;
1624
1625 await _udpPeerB.ConnectAsync();
1626
1627 Monitor.UpdateChannelState(
1628 GetUdpPeerChannelName("B", protocol, encodingName),
1629 ConnectionState.Connected);
1630 }

다음을 참조함 : _currentUdpPeerBEncoding, _currentUdpPeerBProtocol, _udpPeerB, CreateProtocolAdapter(), DisconnectUdpPeerBAsync(), EnsureUdpPeerChannel(), GetUdpPeerChannelName(), Monitor, NormalizeProtocol(), NormalizeTextEncodingName(), OnUdpPeerBMessageReceived(), UdpPeerALocalPort, UdpPeerBLocalPort.

다음에 의해서 참조됨 : SendUdpPeerBAsync(), StartUdpLoopbackAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateFrameCodec()

IMessageFrameCodec SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.CreateFrameCodec ( string protocol,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inlinestaticprivate

Frame Codec 값을 생성합니다.

매개변수
protocolprotocol에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.
반환값
Create Frame Codec 작업에서 생성한 IMessageFrameCodec 결과입니다.

CommunicationSampleRuntime.cs 파일의 3530 번째 라인에서 정의되었습니다.

3533 {
3534 var delimiterEncoding = PlainTextProtocolOptions.CreateEncoding(encodingName);
3535
3536 return NormalizeProtocol(protocol) switch
3537 {
3538 DreamineEnvelopeProtocol => new LengthPrefixedMessageFrameCodec(),
3539
3540 PlainTextProtocol => new DelimiterMessageFrameCodec(
3541 "\r\n",
3542 delimiterEncoding,
3543 1024 * 1024),
3544
3545 RawAvailableProtocol => new RawAvailableMessageFrameCodec(),
3546
3547 RawJsonProtocol => new DelimiterMessageFrameCodec(
3548 "\r\n",
3549 Encoding.UTF8,
3550 1024 * 1024),
3551
3552 _ => new DelimiterMessageFrameCodec(
3553 "\r\n",
3554 delimiterEncoding,
3555 1024 * 1024)
3556 };
3557 }

다음을 참조함 : DreamineEnvelopeProtocol, NormalizeProtocol(), PlainTextProtocol, RawAvailableProtocol, RawJsonProtocol.

다음에 의해서 참조됨 : ConnectSerialAsync(), PrepareTcpClientTransportAsync(), StartTcpServerAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateProtocolAdapter()

IMessageProtocolAdapter SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.CreateProtocolAdapter ( string protocol,
string routePrefix = "tcp",
string namePrefix = "Tcp",
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inlinestaticprivate

Protocol Adapter 값을 생성합니다.

매개변수
protocolprotocol에 사용할 string 값입니다.
routePrefixroute Prefix에 사용할 string 값입니다.
namePrefixname Prefix에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.
반환값
Create Protocol Adapter 작업에서 생성한 IMessageProtocolAdapter 결과입니다.

CommunicationSampleRuntime.cs 파일의 3463 번째 라인에서 정의되었습니다.

3468 {
3469 var normalizedProtocol = NormalizeProtocol(protocol);
3470 var textEncoding = PlainTextProtocolOptions.CreateEncoding(encodingName);
3471
3472 return normalizedProtocol switch
3473 {
3474 DreamineEnvelopeProtocol => new DreamineEnvelopeProtocolAdapter(),
3475
3476 PlainTextProtocol => new PlainTextProtocolAdapter(
3477 textEncoding,
3478 $"{routePrefix}.plaintext",
3479 $"{namePrefix}.PlainText"),
3480
3481 RawAvailableProtocol => new PlainTextProtocolAdapter(
3482 textEncoding,
3483 $"{routePrefix}.raw.available",
3484 $"{namePrefix}.RawAvailable"),
3485
3486 RawJsonProtocol => new RawJsonProtocolAdapter(
3487 textEncoding,
3488 $"{routePrefix}.rawjson",
3489 $"{namePrefix}.RawJson"),
3490
3491 _ => new PlainTextProtocolAdapter(
3492 textEncoding,
3493 $"{routePrefix}.plaintext",
3494 $"{namePrefix}.PlainText")
3495 };
3496 }

다음을 참조함 : DreamineEnvelopeProtocol, NormalizeProtocol(), PlainTextProtocol, RawAvailableProtocol, RawJsonProtocol.

다음에 의해서 참조됨 : ConnectSerialAsync(), ConnectUdpPeerAAsync(), ConnectUdpPeerBAsync(), PrepareTcpClientTransportAsync(), StartTcpServerAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateRabbitMqMessage()

MessageEnvelope SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.CreateRabbitMqMessage ( string direction,
string route,
string text )
inlinestaticprivate

Rabbit Mq Message 값을 생성합니다.

매개변수
directiondirection에 사용할 string 값입니다.
routeroute에 사용할 string 값입니다.
texttext에 사용할 string 값입니다.
반환값
Create Rabbit Mq Message 작업에서 생성한 MessageEnvelope 결과입니다.

CommunicationSampleRuntime.cs 파일의 4289 번째 라인에서 정의되었습니다.

4293 {
4294 return new MessageEnvelope
4295 {
4296 Name = $"RabbitMQ.{direction}",
4297 Route = route,
4298 Payload = Encoding.UTF8.GetBytes(text),
4299 Headers = new Dictionary<string, string>
4300 {
4301 ["ContentType"] = "text/plain",
4302 ["Protocol"] = RabbitMqProtocol
4303 }
4304 };
4305 }

다음을 참조함 : RabbitMqProtocol.

다음에 의해서 참조됨 : PublishRabbitMqAsync().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateSampleOutboundQueueOptions()

OutboundQueueOptions SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.CreateSampleOutboundQueueOptions ( )
inlinestaticprivate

SampleSmart TCP Client 예제에서 사용할 송신 큐 정책을 생성합니다.

반환값
송신 큐 정책입니다.

CommunicationSampleRuntime.cs 파일의 2699 번째 라인에서 정의되었습니다.

2700 {
2701 return new OutboundQueueOptions
2702 {
2703 DisconnectedSendPolicy = DisconnectedSendPolicy.Queue,
2704 MaxQueueSize = 10_000,
2705 DropOldestWhenFull = true,
2706 MaxMessageAge = null,
2707 FlushOnReconnect = true
2708 };
2709 }

다음에 의해서 참조됨 : PrepareTcpClientTransportAsync().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateSampleReconnectPolicy()

ReconnectPolicy SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.CreateSampleReconnectPolicy ( )
inlinestaticprivate

SampleSmart TCP Client 예제에서 사용할 재연결 정책을 생성합니다.

반환값
재연결 정책입니다.

CommunicationSampleRuntime.cs 파일의 2670 번째 라인에서 정의되었습니다.

2671 {
2672 return new ReconnectPolicy
2673 {
2674 Enabled = true,
2675 InitialDelay = TimeSpan.FromSeconds(1),
2676 MaxDelay = TimeSpan.FromSeconds(5),
2677 BackoffFactor = 1.5,
2678 MaxRetryCount = null,
2679 WatchInterval = TimeSpan.FromMilliseconds(500)
2680 };
2681 }

다음에 의해서 참조됨 : PrepareTcpClientTransportAsync(), StartTcpServerAsync().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateSampleServerOutboundQueueOptions()

OutboundQueueOptions SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.CreateSampleServerOutboundQueueOptions ( )
inlinestaticprivate

TCP Server 예제에서 사용할 송신 큐 정책을 생성합니다.

반환값
송신 큐 정책입니다.

CommunicationSampleRuntime.cs 파일의 2727 번째 라인에서 정의되었습니다.

2728 {
2729 return new OutboundQueueOptions
2730 {
2731 DisconnectedSendPolicy = DisconnectedSendPolicy.Fail,
2732 MaxQueueSize = 1_000,
2733 DropOldestWhenFull = true,
2734 MaxMessageAge = null,
2735 FlushOnReconnect = false
2736 };
2737 }

다음에 의해서 참조됨 : StartTcpServerAsync().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateSerialMessageByProtocol()

MessageEnvelope SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.CreateSerialMessageByProtocol ( string protocol,
string direction,
string text,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inlinestaticprivate

Serial Message By Protocol 값을 생성합니다.

매개변수
protocolprotocol에 사용할 string 값입니다.
directiondirection에 사용할 string 값입니다.
texttext에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.
반환값
Create Serial Message By Protocol 작업에서 생성한 MessageEnvelope 결과입니다.

CommunicationSampleRuntime.cs 파일의 4173 번째 라인에서 정의되었습니다.

4178 {
4179 var normalizedProtocol = NormalizeProtocol(protocol);
4180 var normalizedEncodingName = NormalizeTextEncodingName(encodingName);
4181 var payload = Encoding.UTF8.GetBytes(text);
4182
4183 return normalizedProtocol switch
4184 {
4185 DreamineEnvelopeProtocol => new MessageEnvelope
4186 {
4187 Name = $"Serial.{direction}.DreamineEnvelope",
4188 Route = "sample.communication.serial",
4189 Payload = payload,
4190 Headers = new Dictionary<string, string>
4191 {
4192 ["Protocol"] = DreamineEnvelopeProtocol
4193 }
4194 },
4195
4196 PlainTextProtocol => new MessageEnvelope
4197 {
4198 Name = $"Serial.{direction}.PlainText",
4199 Route = "serial.plaintext",
4200 Payload = payload,
4201 Headers = new Dictionary<string, string>
4202 {
4203 ["ContentType"] = "text/plain",
4204 ["Protocol"] = PlainTextProtocol,
4205 ["ExternalEncoding"] = normalizedEncodingName
4206 }
4207 },
4208
4209 RawAvailableProtocol => new MessageEnvelope
4210 {
4211 Name = $"Serial.{direction}.RawAvailable",
4212 Route = "serial.raw.available",
4213 Payload = payload,
4214 Headers = new Dictionary<string, string>
4215 {
4216 ["ContentType"] = "text/plain",
4217 ["Protocol"] = RawAvailableProtocol,
4218 ["ExternalEncoding"] = normalizedEncodingName
4219 }
4220 },
4221
4222 RawJsonProtocol => new MessageEnvelope
4223 {
4224 Name = $"Serial.{direction}.RawJson",
4225 Route = "serial.rawjson",
4226 Payload = EnsureJsonPayload(text),
4227 Headers = new Dictionary<string, string>
4228 {
4229 ["ContentType"] = "application/json",
4230 ["Protocol"] = RawJsonProtocol
4231 }
4232 },
4233
4234 _ => new MessageEnvelope
4235 {
4236 Name = $"Serial.{direction}.PlainText",
4237 Route = "serial.plaintext",
4238 Payload = payload,
4239 Headers = new Dictionary<string, string>
4240 {
4241 ["ContentType"] = "text/plain",
4242 ["Protocol"] = PlainTextProtocol,
4243 ["ExternalEncoding"] = normalizedEncodingName
4244 }
4245 }
4246 };
4247 }

다음을 참조함 : DreamineEnvelopeProtocol, EnsureJsonPayload(), NormalizeProtocol(), NormalizeTextEncodingName(), PlainTextProtocol, RawAvailableProtocol, RawJsonProtocol.

다음에 의해서 참조됨 : SendSerialAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateTcpMessageByProtocol()

MessageEnvelope SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.CreateTcpMessageByProtocol ( string protocol,
string direction,
string text,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inlinestaticprivate

Tcp Message By Protocol 값을 생성합니다.

매개변수
protocolprotocol에 사용할 string 값입니다.
directiondirection에 사용할 string 값입니다.
texttext에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.
반환값
Create Tcp Message By Protocol 작업에서 생성한 MessageEnvelope 결과입니다.

CommunicationSampleRuntime.cs 파일의 3925 번째 라인에서 정의되었습니다.

3930 {
3931 var normalizedProtocol = NormalizeProtocol(protocol);
3932 var normalizedEncodingName = NormalizeTextEncodingName(encodingName);
3933 var payload = Encoding.UTF8.GetBytes(text);
3934
3935 return normalizedProtocol switch
3936 {
3937 DreamineEnvelopeProtocol => new MessageEnvelope
3938 {
3939 Name = $"Tcp.{direction}.DreamineEnvelope",
3940 Route = "sample.communication.tcp",
3941 Payload = payload,
3942 Headers = new Dictionary<string, string>
3943 {
3944 ["Protocol"] = DreamineEnvelopeProtocol
3945 }
3946 },
3947
3948 PlainTextProtocol => new MessageEnvelope
3949 {
3950 Name = $"Tcp.{direction}.PlainText",
3951 Route = "tcp.plaintext",
3952 Payload = payload,
3953 Headers = new Dictionary<string, string>
3954 {
3955 ["ContentType"] = "text/plain",
3956 ["Protocol"] = PlainTextProtocol,
3957 ["ExternalEncoding"] = normalizedEncodingName
3958 }
3959 },
3960
3961 RawAvailableProtocol => new MessageEnvelope
3962 {
3963 Name = $"Tcp.{direction}.RawAvailable",
3964 Route = "tcp.raw.available",
3965 Payload = payload,
3966 Headers = new Dictionary<string, string>
3967 {
3968 ["ContentType"] = "text/plain",
3969 ["Protocol"] = RawAvailableProtocol,
3970 ["ExternalEncoding"] = normalizedEncodingName
3971 }
3972 },
3973
3974 RawJsonProtocol => new MessageEnvelope
3975 {
3976 Name = $"Tcp.{direction}.RawJson",
3977 Route = "tcp.rawjson",
3978 Payload = EnsureJsonPayload(text),
3979 Headers = new Dictionary<string, string>
3980 {
3981 ["ContentType"] = "application/json",
3982 ["Protocol"] = RawJsonProtocol
3983 }
3984 },
3985
3986 _ => new MessageEnvelope
3987 {
3988 Name = $"Tcp.{direction}.PlainText",
3989 Route = "tcp.plaintext",
3990 Payload = payload,
3991 Headers = new Dictionary<string, string>
3992 {
3993 ["ContentType"] = "text/plain",
3994 ["Protocol"] = PlainTextProtocol,
3995 ["ExternalEncoding"] = normalizedEncodingName
3996 }
3997 }
3998 };
3999 }

다음을 참조함 : DreamineEnvelopeProtocol, EnsureJsonPayload(), NormalizeProtocol(), NormalizeTextEncodingName(), PlainTextProtocol, RawAvailableProtocol, RawJsonProtocol.

다음에 의해서 참조됨 : AttachTcpClientQueueMonitor(), OnTcpServerMessageReceived(), SendTcpClientAsync(), SendTcpServerAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateTcpServerDescription()

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.CreateTcpServerDescription ( string protocol,
string encodingName,
int port,
int clientCount,
TcpServerSendTargetMode targetMode,
bool echoEnabled )
inlinestaticprivate

Tcp Server Description 값을 생성합니다.

매개변수
protocolprotocol에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.
portport에 사용할 int 값입니다.
clientCountclient Count에 사용할 int 값입니다.
targetModetarget Mode에 사용할 TcpServerSendTargetMode 값입니다.
echoEnabledecho Enabled에 사용할 bool 값입니다.
반환값
Create Tcp Server Description 작업에서 생성한 string 결과입니다.

CommunicationSampleRuntime.cs 파일의 2961 번째 라인에서 정의되었습니다.

2968 {
2969 var echoText = echoEnabled ? "On" : "Off";
2970
2971 return $"TCP server [{protocol}/{NormalizeTextEncodingName(encodingName)}] on 127.0.0.1:{port}. Clients={clientCount}. Target={targetMode}. Echo={echoText}.";
2972 }

다음에 의해서 참조됨 : EnsureTcpServerChannel(), UpdateTcpServerDescription().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateTextMessage()

MessageEnvelope SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.CreateTextMessage ( string name,
string route,
string text,
string protocol )
inlinestaticprivate

Text Message 값을 생성합니다.

매개변수
namename에 사용할 string 값입니다.
routeroute에 사용할 string 값입니다.
texttext에 사용할 string 값입니다.
protocolprotocol에 사용할 string 값입니다.
반환값
Create Text Message 작업에서 생성한 MessageEnvelope 결과입니다.

CommunicationSampleRuntime.cs 파일의 4355 번째 라인에서 정의되었습니다.

4360 {
4361 return new MessageEnvelope
4362 {
4363 Name = name,
4364 Route = route,
4365 Payload = Encoding.UTF8.GetBytes(text),
4366 Headers = new Dictionary<string, string>
4367 {
4368 ["ContentType"] = "text/plain",
4369 ["Protocol"] = protocol
4370 }
4371 };
4372 }

다음에 의해서 참조됨 : AddRabbitMqErrorLog(), ReceiveInMemory(), SendInMemoryAsync().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateUdpMessageByProtocol()

MessageEnvelope SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.CreateUdpMessageByProtocol ( string protocol,
string direction,
string text,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inlinestaticprivate

Udp Message By Protocol 값을 생성합니다.

매개변수
protocolprotocol에 사용할 string 값입니다.
directiondirection에 사용할 string 값입니다.
texttext에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.
반환값
Create Udp Message By Protocol 작업에서 생성한 MessageEnvelope 결과입니다.

CommunicationSampleRuntime.cs 파일의 4049 번째 라인에서 정의되었습니다.

4054 {
4055 var normalizedProtocol = NormalizeProtocol(protocol);
4056 var normalizedEncodingName = NormalizeTextEncodingName(encodingName);
4057 var payload = Encoding.UTF8.GetBytes(text);
4058
4059 return normalizedProtocol switch
4060 {
4061 DreamineEnvelopeProtocol => new MessageEnvelope
4062 {
4063 Name = $"Udp.{direction}.DreamineEnvelope",
4064 Route = "sample.communication.udp",
4065 Payload = payload,
4066 Headers = new Dictionary<string, string>
4067 {
4068 ["Protocol"] = DreamineEnvelopeProtocol
4069 }
4070 },
4071
4072 PlainTextProtocol => new MessageEnvelope
4073 {
4074 Name = $"Udp.{direction}.PlainText",
4075 Route = "udp.plaintext",
4076 Payload = payload,
4077 Headers = new Dictionary<string, string>
4078 {
4079 ["ContentType"] = "text/plain",
4080 ["Protocol"] = PlainTextProtocol,
4081 ["ExternalEncoding"] = normalizedEncodingName
4082 }
4083 },
4084
4085 RawAvailableProtocol => new MessageEnvelope
4086 {
4087 Name = $"Udp.{direction}.RawAvailable",
4088 Route = "udp.raw.available",
4089 Payload = payload,
4090 Headers = new Dictionary<string, string>
4091 {
4092 ["ContentType"] = "text/plain",
4093 ["Protocol"] = RawAvailableProtocol,
4094 ["ExternalEncoding"] = normalizedEncodingName
4095 }
4096 },
4097
4098 RawJsonProtocol => new MessageEnvelope
4099 {
4100 Name = $"Udp.{direction}.RawJson",
4101 Route = "udp.rawjson",
4102 Payload = EnsureJsonPayload(text),
4103 Headers = new Dictionary<string, string>
4104 {
4105 ["ContentType"] = "application/json",
4106 ["Protocol"] = RawJsonProtocol
4107 }
4108 },
4109
4110 _ => new MessageEnvelope
4111 {
4112 Name = $"Udp.{direction}.PlainText",
4113 Route = "udp.plaintext",
4114 Payload = payload,
4115 Headers = new Dictionary<string, string>
4116 {
4117 ["ContentType"] = "text/plain",
4118 ["Protocol"] = PlainTextProtocol,
4119 ["ExternalEncoding"] = normalizedEncodingName
4120 }
4121 }
4122 };
4123 }

다음을 참조함 : DreamineEnvelopeProtocol, EnsureJsonPayload(), NormalizeProtocol(), NormalizeTextEncodingName(), PlainTextProtocol, RawAvailableProtocol, RawJsonProtocol.

다음에 의해서 참조됨 : SendUdpPeerAAsync(), SendUdpPeerBAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DisconnectInMemoryAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.DisconnectInMemoryAsync ( )
inline

InMemory MessageBus 연결을 해제합니다.

반환값
Disconnect In Memory Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 640 번째 라인에서 정의되었습니다.

641 {
642 AddInMemoryChannel();
643
644 await _messageBus.DisconnectAsync();
645
646 Monitor.UpdateChannelState(
647 InMemoryChannelName,
648 ConnectionState.Disconnected);
649 }

다음을 참조함 : _messageBus, AddInMemoryChannel(), InMemoryChannelName, Monitor.

다음에 의해서 참조됨 : StopAllAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DisconnectRabbitMqAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.DisconnectRabbitMqAsync ( )
inline

RabbitMQ 연결을 해제합니다.

반환값
Disconnect Rabbit Mq Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 2497 번째 라인에서 정의되었습니다.

2498 {
2499 if (_rabbitMqBus is null)
2500 {
2501 if (Monitor.Channels.Any(x => x.Name == RabbitMqChannelName))
2502 {
2503 Monitor.UpdateChannelState(
2504 RabbitMqChannelName,
2505 ConnectionState.Disconnected);
2506 }
2507
2508 return;
2509 }
2510
2511 await _rabbitMqBus.DisposeAsync();
2512
2513 _rabbitMqBus = null;
2514 _isRabbitMqSubscribed = false;
2515
2516 if (Monitor.Channels.Any(x => x.Name == RabbitMqChannelName))
2517 {
2518 Monitor.UpdateChannelState(
2519 RabbitMqChannelName,
2520 ConnectionState.Disconnected);
2521 }
2522 }

다음을 참조함 : _isRabbitMqSubscribed, _rabbitMqBus, Monitor, RabbitMqChannelName.

다음에 의해서 참조됨 : ConnectRabbitMqAsync(), StopAllAsync().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DisconnectSerialAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.DisconnectSerialAsync ( )
inline

현재 Serial Port 연결을 해제합니다.

반환값
Disconnect Serial Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 2028 번째 라인에서 정의되었습니다.

2029 {
2030 var channelName = GetSerialChannelName();
2031
2032 if (_serialTransport is null)
2033 {
2034 if (Monitor.Channels.Any(x => x.Name == channelName))
2035 {
2036 Monitor.UpdateChannelState(channelName, ConnectionState.Disconnected);
2037 }
2038
2039 return;
2040 }
2041
2042 _serialTransport.MessageReceived -= OnSerialMessageReceived;
2043
2044 await _serialTransport.DisposeAsync();
2045
2046 _serialTransport = null;
2047
2048 if (Monitor.Channels.Any(x => x.Name == channelName))
2049 {
2050 Monitor.UpdateChannelState(channelName, ConnectionState.Disconnected);
2051 }
2052 }

다음을 참조함 : _serialTransport, GetSerialChannelName(), Monitor, OnSerialMessageReceived().

다음에 의해서 참조됨 : ConnectSerialAsync(), StopAllAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DisconnectTcpClientAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.DisconnectTcpClientAsync ( )
inline

현재 TCP Client 연결을 해제합니다.

반환값
Disconnect Tcp Client Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1286 번째 라인에서 정의되었습니다.

1287 {
1288 var protocol = _currentClientProtocol;
1289 var encodingName = _currentClientEncoding;
1290 var channelName = GetTcpClientChannelName(protocol, encodingName);
1291
1292 if (_tcpClient is null)
1293 {
1294 if (Monitor.Channels.Any(x => x.Name == channelName))
1295 {
1296 Monitor.UpdateChannelState(channelName, ConnectionState.Disconnected);
1297 }
1298
1299 return;
1300 }
1301
1302 _tcpClient.MessageReceived -= OnTcpClientMessageReceived;
1303
1304 await _tcpClient.DisposeAsync();
1305
1306 _tcpClient = null;
1307
1308 if (Monitor.Channels.Any(x => x.Name == channelName))
1309 {
1310 Monitor.UpdateChannelState(channelName, ConnectionState.Disconnected);
1311 }
1312 }

다음을 참조함 : _currentClientEncoding, _currentClientProtocol, _tcpClient, GetTcpClientChannelName(), Monitor, OnTcpClientMessageReceived().

다음에 의해서 참조됨 : PrepareTcpClientTransportAsync(), StopAllTcpAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DisconnectUdpPeerAAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.DisconnectUdpPeerAAsync ( )
inline

UDP Peer A 연결을 해제합니다.

반환값
Disconnect Udp Peer A Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1648 번째 라인에서 정의되었습니다.

1649 {
1650 var protocol = _currentUdpPeerAProtocol;
1651 var encodingName = _currentUdpPeerAEncoding;
1652 var channelName = GetUdpPeerChannelName("A", protocol, encodingName);
1653
1654 if (_udpPeerA is null)
1655 {
1656 if (Monitor.Channels.Any(x => x.Name == channelName))
1657 {
1658 Monitor.UpdateChannelState(channelName, ConnectionState.Disconnected);
1659 }
1660
1661 return;
1662 }
1663
1664 _udpPeerA.MessageReceived -= OnUdpPeerAMessageReceived;
1665
1666 await _udpPeerA.DisposeAsync();
1667
1668 _udpPeerA = null;
1669
1670 if (Monitor.Channels.Any(x => x.Name == channelName))
1671 {
1672 Monitor.UpdateChannelState(channelName, ConnectionState.Disconnected);
1673 }
1674 }

다음을 참조함 : _currentUdpPeerAEncoding, _currentUdpPeerAProtocol, _udpPeerA, GetUdpPeerChannelName(), Monitor, OnUdpPeerAMessageReceived().

다음에 의해서 참조됨 : ConnectUdpPeerAAsync(), StopAllUdpAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DisconnectUdpPeerBAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.DisconnectUdpPeerBAsync ( )
inline

UDP Peer B 연결을 해제합니다.

반환값
Disconnect Udp Peer B Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1692 번째 라인에서 정의되었습니다.

1693 {
1694 var protocol = _currentUdpPeerBProtocol;
1695 var encodingName = _currentUdpPeerBEncoding;
1696 var channelName = GetUdpPeerChannelName("B", protocol, encodingName);
1697
1698 if (_udpPeerB is null)
1699 {
1700 if (Monitor.Channels.Any(x => x.Name == channelName))
1701 {
1702 Monitor.UpdateChannelState(channelName, ConnectionState.Disconnected);
1703 }
1704
1705 return;
1706 }
1707
1708 _udpPeerB.MessageReceived -= OnUdpPeerBMessageReceived;
1709
1710 await _udpPeerB.DisposeAsync();
1711
1712 _udpPeerB = null;
1713
1714 if (Monitor.Channels.Any(x => x.Name == channelName))
1715 {
1716 Monitor.UpdateChannelState(channelName, ConnectionState.Disconnected);
1717 }
1718 }

다음을 참조함 : _currentUdpPeerBEncoding, _currentUdpPeerBProtocol, _udpPeerB, GetUdpPeerChannelName(), Monitor, OnUdpPeerBMessageReceived().

다음에 의해서 참조됨 : ConnectUdpPeerBAsync(), StopAllUdpAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ EnsureJsonPayload()

byte[] SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.EnsureJsonPayload ( string text)
inlinestaticprivate

Ensure Json Payload 작업을 수행합니다.

매개변수
texttext에 사용할 string 값입니다.
반환값
Ensure Json Payload 작업에서 생성한 byte[] 결과입니다.

CommunicationSampleRuntime.cs 파일의 4438 번째 라인에서 정의되었습니다.

4439 {
4440 if (string.IsNullOrWhiteSpace(text))
4441 {
4442 text = "{\"cmd\":\"PING\"}";
4443 }
4444
4445 var trimmed = text.Trim();
4446
4447 if (trimmed.StartsWith("{", StringComparison.Ordinal) ||
4448 trimmed.StartsWith("[", StringComparison.Ordinal))
4449 {
4450 return Encoding.UTF8.GetBytes(trimmed);
4451 }
4452
4453 var json = $$"""
4454 {"message":"{{EscapeJsonString(text)}}"}
4455 """;
4456
4457 return Encoding.UTF8.GetBytes(json);
4458 }

다음을 참조함 : EscapeJsonString().

다음에 의해서 참조됨 : CreateSerialMessageByProtocol(), CreateTcpMessageByProtocol(), CreateUdpMessageByProtocol().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ EnsureRabbitMqChannel()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.EnsureRabbitMqChannel ( )
inlineprivate

Ensure Rabbit Mq Channel 작업을 수행합니다.

CommunicationSampleRuntime.cs 파일의 3376 번째 라인에서 정의되었습니다.

3377 {
3378 if (Monitor.Channels.Any(x => x.Name == RabbitMqChannelName))
3379 {
3380 return;
3381 }
3382
3383 Monitor.AddChannel(
3384 RabbitMqChannelName,
3385 TransportKind.RabbitMq,
3386 $"RabbitMQ on {_currentRabbitMqHost}:{_currentRabbitMqPort}, vhost={_currentRabbitMqVirtualHost}, exchange={_currentRabbitMqExchangeName}, queue={_currentRabbitMqQueueName}, route={_currentRabbitMqRoutingKey}.");
3387 }

다음을 참조함 : Monitor, RabbitMqChannelName.

다음에 의해서 참조됨 : ConnectRabbitMqAsync().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ EnsureSerialChannel()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.EnsureSerialChannel ( )
inlineprivate

Ensure Serial Channel 작업을 수행합니다.

CommunicationSampleRuntime.cs 파일의 3353 번째 라인에서 정의되었습니다.

3354 {
3355 var channelName = GetSerialChannelName();
3356
3357 if (Monitor.Channels.Any(x => x.Name == channelName))
3358 {
3359 return;
3360 }
3361
3362 Monitor.AddChannel(
3363 channelName,
3364 TransportKind.Serial,
3365 $"Serial [{_currentSerialProtocol}/{_currentSerialEncoding}] on {_currentSerialPortName}:{_currentSerialBaudRate}.");
3366 }

다음을 참조함 : GetSerialChannelName(), Monitor.

다음에 의해서 참조됨 : ConnectSerialAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ EnsureTcpClientChannel()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.EnsureTcpClientChannel ( string protocol,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inlineprivate

Ensure Tcp Client Channel 작업을 수행합니다.

매개변수
protocolprotocol에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.

CommunicationSampleRuntime.cs 파일의 3273 번째 라인에서 정의되었습니다.

3276 {
3277 var channelName = GetTcpClientChannelName(protocol, encodingName);
3278 var port = GetTcpPort(protocol);
3279
3280 if (Monitor.Channels.Any(x => x.Name == channelName))
3281 {
3282 return;
3283 }
3284
3285 Monitor.AddChannel(
3286 channelName,
3287 TransportKind.Tcp,
3288 $"TCP client [{protocol}/{NormalizeTextEncodingName(encodingName)}] to 127.0.0.1:{port}.");
3289 }

다음을 참조함 : GetTcpClientChannelName(), GetTcpPort(), Monitor.

다음에 의해서 참조됨 : PrepareTcpClientTransportAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ EnsureTcpServerChannel()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.EnsureTcpServerChannel ( string protocol,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inlineprivate

Ensure Tcp Server Channel 작업을 수행합니다.

매개변수
protocolprotocol에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.

CommunicationSampleRuntime.cs 파일의 3225 번째 라인에서 정의되었습니다.

3228 {
3229 var channelName = GetTcpServerChannelName(protocol, encodingName);
3230 var port = GetTcpPort(protocol);
3231
3232 if (Monitor.Channels.Any(x => x.Name == channelName))
3233 {
3234 return;
3235 }
3236
3237 Monitor.AddChannel(
3238 channelName,
3239 TransportKind.Tcp,
3240 CreateTcpServerDescription(
3241 protocol,
3242 encodingName,
3243 port,
3244 0,
3245 _currentServerSendTargetMode,
3246 _currentServerEchoEnabled));
3247 }

다음을 참조함 : _currentServerEchoEnabled, _currentServerSendTargetMode, CreateTcpServerDescription(), GetTcpPort(), GetTcpServerChannelName(), Monitor.

다음에 의해서 참조됨 : StartTcpServerAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ EnsureUdpPeerChannel()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.EnsureUdpPeerChannel ( string peerName,
string protocol,
string encodingName )
inlineprivate

Ensure Udp Peer Channel 작업을 수행합니다.

매개변수
peerNamepeer Name에 사용할 string 값입니다.
protocolprotocol에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.

CommunicationSampleRuntime.cs 파일의 3323 번째 라인에서 정의되었습니다.

3327 {
3328 encodingName = NormalizeTextEncodingName(encodingName);
3329
3330 var channelName = GetUdpPeerChannelName(peerName, protocol, encodingName);
3331 var localPort = GetUdpLocalPort(peerName);
3332 var remotePort = GetUdpRemotePort(peerName);
3333
3334 if (Monitor.Channels.Any(x => x.Name == channelName))
3335 {
3336 return;
3337 }
3338
3339 Monitor.AddChannel(
3340 channelName,
3341 TransportKind.Udp,
3342 $"UDP peer {peerName} [{protocol}/{encodingName}] 127.0.0.1:{localPort} -> 127.0.0.1:{remotePort}.");
3343 }

다음을 참조함 : GetUdpLocalPort(), GetUdpPeerChannelName(), GetUdpRemotePort(), Monitor, NormalizeTextEncodingName().

다음에 의해서 참조됨 : ConnectUdpPeerAAsync(), ConnectUdpPeerBAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ EscapeJsonString()

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.EscapeJsonString ( string value)
inlinestaticprivate

Escape Json String 작업을 수행합니다.

매개변수
value적용할 값입니다.
반환값
Escape Json String 작업에서 생성한 string 결과입니다.

CommunicationSampleRuntime.cs 파일의 4484 번째 라인에서 정의되었습니다.

4485 {
4486 return value
4487 .Replace("\\", "\\\\", StringComparison.Ordinal)
4488 .Replace("\"", "\\\"", StringComparison.Ordinal)
4489 .Replace("\r", "\\r", StringComparison.Ordinal)
4490 .Replace("\n", "\\n", StringComparison.Ordinal);
4491 }

다음에 의해서 참조됨 : EnsureJsonPayload().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetSerialChannelName()

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.GetSerialChannelName ( )
inlineprivate

Serial Channel Name 값을 가져옵니다.

반환값
Get Serial Channel Name 작업에서 생성한 string 결과입니다.

CommunicationSampleRuntime.cs 파일의 3405 번째 라인에서 정의되었습니다.

3406 {
3407 if (string.IsNullOrWhiteSpace(_currentSerialPortName))
3408 {
3409 return "Serial-Port";
3410 }
3411
3412 return $"Serial-{_currentSerialPortName}";
3413 }

다음을 참조함 : _currentSerialPortName.

다음에 의해서 참조됨 : ConnectSerialAsync(), DisconnectSerialAsync(), EnsureSerialChannel(), OnSerialMessageReceived(), SendSerialAsync().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetTcpClientChannelName()

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.GetTcpClientChannelName ( string protocol,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inlinestaticprivate

Tcp Client Channel Name 값을 가져옵니다.

매개변수
protocolprotocol에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.
반환값
Get Tcp Client Channel Name 작업에서 생성한 string 결과입니다.

CommunicationSampleRuntime.cs 파일의 3675 번째 라인에서 정의되었습니다.

3678 {
3679 var normalizedEncodingName = NormalizeTextEncodingName(encodingName);
3680
3681 return NormalizeProtocol(protocol) switch
3682 {
3683 DreamineEnvelopeProtocol => "TCP-Client-Dreamine",
3684 PlainTextProtocol => $"TCP-Client-PlainText-{normalizedEncodingName}",
3685 RawAvailableProtocol => $"TCP-Client-RawAvailable-{normalizedEncodingName}",
3686 RawJsonProtocol => "TCP-Client-RawJson",
3687 _ => $"TCP-Client-PlainText-{normalizedEncodingName}"
3688 };
3689 }

다음을 참조함 : DreamineEnvelopeProtocol, NormalizeProtocol(), NormalizeTextEncodingName(), PlainTextProtocol, RawAvailableProtocol, RawJsonProtocol.

다음에 의해서 참조됨 : ConnectTcpClientAsync(), DisconnectTcpClientAsync(), EnsureTcpClientChannel(), OnTcpClientMessageReceived(), PrepareTcpClientTransportAsync(), SendTcpClientAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetTcpPort()

int SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.GetTcpPort ( string protocol)
inlinestaticprivate

Tcp Port 값을 가져옵니다.

매개변수
protocolprotocol에 사용할 string 값입니다.
반환값
Get Tcp Port 작업에서 생성한 int 결과입니다.

CommunicationSampleRuntime.cs 파일의 3583 번째 라인에서 정의되었습니다.

3584 {
3585 return NormalizeProtocol(protocol) switch
3586 {
3587 DreamineEnvelopeProtocol => DreamineProtocolPort,
3588 PlainTextProtocol => PlainTextProtocolPort,
3589 RawAvailableProtocol => RawAvailableProtocolPort,
3590 RawJsonProtocol => RawJsonProtocolPort,
3591 _ => PlainTextProtocolPort
3592 };
3593 }

다음을 참조함 : DreamineEnvelopeProtocol, DreamineProtocolPort, NormalizeProtocol(), PlainTextProtocol, PlainTextProtocolPort, RawAvailableProtocol, RawAvailableProtocolPort, RawJsonProtocol, RawJsonProtocolPort.

다음에 의해서 참조됨 : EnsureTcpClientChannel(), EnsureTcpServerChannel(), PrepareTcpClientTransportAsync(), StartTcpServerAsync(), UpdateTcpServerDescription().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetTcpServerChannelName()

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.GetTcpServerChannelName ( string protocol,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inlinestaticprivate

Tcp Server Channel Name 값을 가져옵니다.

매개변수
protocolprotocol에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.
반환값
Get Tcp Server Channel Name 작업에서 생성한 string 결과입니다.

CommunicationSampleRuntime.cs 파일의 3627 번째 라인에서 정의되었습니다.

3630 {
3631 var normalizedEncodingName = NormalizeTextEncodingName(encodingName);
3632
3633 return NormalizeProtocol(protocol) switch
3634 {
3635 DreamineEnvelopeProtocol => "TCP-Server-Dreamine",
3636 PlainTextProtocol => $"TCP-Server-PlainText-{normalizedEncodingName}",
3637 RawAvailableProtocol => $"TCP-Server-RawAvailable-{normalizedEncodingName}",
3638 RawJsonProtocol => "TCP-Server-RawJson",
3639 _ => $"TCP-Server-PlainText-{normalizedEncodingName}"
3640 };
3641 }

다음을 참조함 : DreamineEnvelopeProtocol, NormalizeProtocol(), NormalizeTextEncodingName(), PlainTextProtocol, RawAvailableProtocol, RawJsonProtocol.

다음에 의해서 참조됨 : EnsureTcpServerChannel(), OnTcpServerMessageReceived(), SendTcpServerAsync(), StartTcpServerAsync(), StopTcpServerAsync(), UpdateTcpServerDescription().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetUdpLocalPort()

int SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.GetUdpLocalPort ( string peerName)
inlinestaticprivate

Udp Local Port 값을 가져옵니다.

매개변수
peerNamepeer Name에 사용할 string 값입니다.
반환값
Get Udp Local Port 작업에서 생성한 int 결과입니다.

CommunicationSampleRuntime.cs 파일의 3808 번째 라인에서 정의되었습니다.

3809 {
3810 return NormalizeUdpPeerName(peerName) == "B"
3811 ? UdpPeerBLocalPort
3812 : UdpPeerALocalPort;
3813 }

다음을 참조함 : NormalizeUdpPeerName(), UdpPeerALocalPort, UdpPeerBLocalPort.

다음에 의해서 참조됨 : EnsureUdpPeerChannel().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetUdpPeerChannelName()

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.GetUdpPeerChannelName ( string peerName,
string protocol,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inlinestaticprivate

Udp Peer Channel Name 값을 가져옵니다.

매개변수
peerNamepeer Name에 사용할 string 값입니다.
protocolprotocol에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.
반환값
Get Udp Peer Channel Name 작업에서 생성한 string 결과입니다.

CommunicationSampleRuntime.cs 파일의 3731 번째 라인에서 정의되었습니다.

3735 {
3736 var normalizedPeerName = NormalizeUdpPeerName(peerName);
3737 var normalizedEncodingName = NormalizeTextEncodingName(encodingName);
3738
3739 return NormalizeProtocol(protocol) switch
3740 {
3741 DreamineEnvelopeProtocol => $"UDP-Peer{normalizedPeerName}-Dreamine",
3742 PlainTextProtocol => $"UDP-Peer{normalizedPeerName}-PlainText-{normalizedEncodingName}",
3743 RawAvailableProtocol => $"UDP-Peer{normalizedPeerName}-RawAvailable-{normalizedEncodingName}",
3744 RawJsonProtocol => $"UDP-Peer{normalizedPeerName}-RawJson",
3745 _ => $"UDP-Peer{normalizedPeerName}-PlainText-{normalizedEncodingName}"
3746 };
3747 }

다음을 참조함 : DreamineEnvelopeProtocol, NormalizeProtocol(), NormalizeTextEncodingName(), NormalizeUdpPeerName(), PlainTextProtocol, RawAvailableProtocol, RawJsonProtocol.

다음에 의해서 참조됨 : ConnectUdpPeerAAsync(), ConnectUdpPeerBAsync(), DisconnectUdpPeerAAsync(), DisconnectUdpPeerBAsync(), EnsureUdpPeerChannel(), OnUdpPeerAMessageReceived(), OnUdpPeerBMessageReceived(), SendUdpPeerAAsync(), SendUdpPeerBAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetUdpRemotePort()

int SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.GetUdpRemotePort ( string peerName)
inlinestaticprivate

Udp Remote Port 값을 가져옵니다.

매개변수
peerNamepeer Name에 사용할 string 값입니다.
반환값
Get Udp Remote Port 작업에서 생성한 int 결과입니다.

CommunicationSampleRuntime.cs 파일의 3839 번째 라인에서 정의되었습니다.

3840 {
3841 return NormalizeUdpPeerName(peerName) == "B"
3842 ? UdpPeerALocalPort
3843 : UdpPeerBLocalPort;
3844 }

다음을 참조함 : NormalizeUdpPeerName(), UdpPeerALocalPort, UdpPeerBLocalPort.

다음에 의해서 참조됨 : EnsureUdpPeerChannel().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ NormalizeProtocol()

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.NormalizeProtocol ( string? protocol)
inlinestaticprivate

Normalize Protocol 작업을 수행합니다.

매개변수
protocolprotocol에 사용할 string? 값입니다.
반환값
Normalize Protocol 작업에서 생성한 string 결과입니다.

CommunicationSampleRuntime.cs 파일의 4554 번째 라인에서 정의되었습니다.

4555 {
4556 if (string.IsNullOrWhiteSpace(protocol))
4557 {
4558 return PlainTextProtocol;
4559 }
4560
4561 return protocol.Trim() switch
4562 {
4563 DreamineEnvelopeProtocol => DreamineEnvelopeProtocol,
4564 PlainTextProtocol => PlainTextProtocol,
4565 RawAvailableProtocol => RawAvailableProtocol,
4566 RawJsonProtocol => RawJsonProtocol,
4567 _ => PlainTextProtocol
4568 };
4569 }

다음을 참조함 : DreamineEnvelopeProtocol, PlainTextProtocol, RawAvailableProtocol, RawJsonProtocol.

다음에 의해서 참조됨 : ConnectSerialAsync(), ConnectTcpClientAsync(), ConnectUdpPeerAAsync(), ConnectUdpPeerBAsync(), CreateFrameCodec(), CreateProtocolAdapter(), CreateSerialMessageByProtocol(), CreateTcpMessageByProtocol(), CreateUdpMessageByProtocol(), GetTcpClientChannelName(), GetTcpPort(), GetTcpServerChannelName(), GetUdpPeerChannelName(), PrepareTcpClientTransportAsync(), SendSerialAsync(), SendTcpClientAsync(), SendTcpServerAsync(), SendUdpPeerAAsync(), SendUdpPeerBAsync(), StartTcpServerAsync(), UpdateTcpServerOptions().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ NormalizeTcpServerSendTargetMode()

TcpServerSendTargetMode SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.NormalizeTcpServerSendTargetMode ( string? sendTargetMode)
inlinestaticprivate

Normalize Tcp Server Send Target Mode 작업을 수행합니다.

매개변수
sendTargetModesend Target Mode에 사용할 string? 값입니다.
반환값
Normalize Tcp Server Send Target Mode 작업에서 생성한 TcpServerSendTargetMode 결과입니다.

CommunicationSampleRuntime.cs 파일의 4517 번째 라인에서 정의되었습니다.

4518 {
4519 if (Enum.TryParse<TcpServerSendTargetMode>(
4520 sendTargetMode,
4521 ignoreCase: true,
4522 out var parsed))
4523 {
4524 return parsed;
4525 }
4526
4527 return TcpServerSendTargetMode.Broadcast;
4528 }

다음에 의해서 참조됨 : SendTcpServerAsync(), StartTcpServerAsync(), UpdateTcpServerOptions().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ NormalizeText()

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.NormalizeText ( string? value,
string defaultValue )
inlinestaticprivate

Normalize Text 작업을 수행합니다.

매개변수
value적용할 값입니다.
defaultValuedefault Value에 사용할 string 값입니다.
반환값
Normalize Text 작업에서 생성한 string 결과입니다.

CommunicationSampleRuntime.cs 파일의 4603 번째 라인에서 정의되었습니다.

4606 {
4607 return string.IsNullOrWhiteSpace(value)
4608 ? defaultValue
4609 : value.Trim();
4610 }

다음에 의해서 참조됨 : ConnectRabbitMqAsync(), PublishRabbitMqAsync(), SubscribeRabbitMqAsync().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ NormalizeTextEncodingName()

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.NormalizeTextEncodingName ( string encodingName)
inlinestaticprivate

Normalize Text Encoding Name 작업을 수행합니다.

매개변수
encodingNameencoding Name에 사용할 string 값입니다.
반환값
Normalize Text Encoding Name 작업에서 생성한 string 결과입니다.

CommunicationSampleRuntime.cs 파일의 3772 번째 라인에서 정의되었습니다.

3773 {
3774 if (string.Equals(encodingName, PlainTextProtocolOptions.KoreanCodePage949EncodingName, StringComparison.OrdinalIgnoreCase) ||
3775 string.Equals(encodingName, "949", StringComparison.OrdinalIgnoreCase))
3776 {
3777 return PlainTextProtocolOptions.KoreanCodePage949EncodingName;
3778 }
3779
3780 return PlainTextProtocolOptions.Utf8EncodingName;
3781 }

다음에 의해서 참조됨 : ConnectSerialAsync(), ConnectTcpClientAsync(), ConnectUdpPeerAAsync(), ConnectUdpPeerBAsync(), CreateSerialMessageByProtocol(), CreateTcpMessageByProtocol(), CreateUdpMessageByProtocol(), EnsureUdpPeerChannel(), GetTcpClientChannelName(), GetTcpServerChannelName(), GetUdpPeerChannelName(), PrepareTcpClientTransportAsync(), SendSerialAsync(), SendTcpClientAsync(), SendTcpServerAsync(), SendUdpPeerAAsync(), SendUdpPeerBAsync(), StartTcpServerAsync(), UpdateTcpServerOptions().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ NormalizeUdpPeerName()

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.NormalizeUdpPeerName ( string peerName)
inlinestaticprivate

Normalize Udp Peer Name 작업을 수행합니다.

매개변수
peerNamepeer Name에 사용할 string 값입니다.
반환값
Normalize Udp Peer Name 작업에서 생성한 string 결과입니다.

CommunicationSampleRuntime.cs 파일의 3870 번째 라인에서 정의되었습니다.

3871 {
3872 return string.Equals(peerName, "B", StringComparison.OrdinalIgnoreCase)
3873 ? "B"
3874 : "A";
3875 }

다음에 의해서 참조됨 : GetUdpLocalPort(), GetUdpPeerChannelName(), GetUdpRemotePort().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnSerialMessageReceived()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.OnSerialMessageReceived ( object? sender,
MessageEnvelope message )
inlineprivate

Serial Message Received 이벤트 또는 상태 변경을 처리합니다.

매개변수
sender이벤트를 발생시킨 객체입니다.
message처리할 메시지입니다.

CommunicationSampleRuntime.cs 파일의 3188 번째 라인에서 정의되었습니다.

3189 {
3190 var channelName = GetSerialChannelName();
3191
3192 RunOnUiThread(() =>
3193 {
3194 Monitor.AddReceiveLog(
3195 channelName,
3196 TransportKind.Serial,
3197 message);
3198 });
3199 }

다음을 참조함 : GetSerialChannelName(), Monitor, RunOnUiThread().

다음에 의해서 참조됨 : ConnectSerialAsync(), DisconnectSerialAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnTcpClientMessageReceived()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.OnTcpClientMessageReceived ( object? sender,
MessageEnvelope message )
inlineprivate

Tcp Client Message Received 이벤트 또는 상태 변경을 처리합니다.

매개변수
sender이벤트를 발생시킨 객체입니다.
message처리할 메시지입니다.

CommunicationSampleRuntime.cs 파일의 3071 번째 라인에서 정의되었습니다.

3072 {
3073 var protocol = _currentClientProtocol;
3074 var encodingName = _currentClientEncoding;
3075 var channelName = GetTcpClientChannelName(protocol, encodingName);
3076
3077 RunOnUiThread(() =>
3078 {
3079 Monitor.AddReceiveLog(
3080 channelName,
3081 TransportKind.Tcp,
3082 message);
3083 });
3084 }

다음을 참조함 : _currentClientEncoding, _currentClientProtocol, GetTcpClientChannelName(), Monitor, RunOnUiThread().

다음에 의해서 참조됨 : DisconnectTcpClientAsync(), PrepareTcpClientTransportAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnTcpServerMessageReceived()

async void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.OnTcpServerMessageReceived ( object? sender,
MessageEnvelope message )
inlineprivate

Tcp Server Message Received 이벤트 또는 상태 변경을 처리합니다.

매개변수
sender이벤트를 발생시킨 객체입니다.
message처리할 메시지입니다.

CommunicationSampleRuntime.cs 파일의 2614 번째 라인에서 정의되었습니다.

2615 {
2616 var protocol = _currentServerProtocol;
2617 var encodingName = _currentServerEncoding;
2618 var channelName = GetTcpServerChannelName(protocol, encodingName);
2619
2620 RunOnUiThread(() =>
2621 {
2622 Monitor.AddReceiveLog(
2623 channelName,
2624 TransportKind.Tcp,
2625 message);
2626 });
2627
2628 if (_tcpServer is null ||
2629 _tcpServer.State != ConnectionState.Listening ||
2630 !_currentServerEchoEnabled)
2631 {
2632 return;
2633 }
2634
2635 var receiveText = Encoding.UTF8.GetString(message.Payload);
2636
2637 var echoMessage = CreateTcpMessageByProtocol(
2638 protocol,
2639 $"Server.Echo.{_currentServerSendTargetMode}",
2640 $"Echo from Dreamine TCP Server - {receiveText}",
2641 encodingName);
2642
2643 RunOnUiThread(() =>
2644 {
2645 Monitor.AddSendLog(
2646 channelName,
2647 TransportKind.Tcp,
2648 echoMessage);
2649 });
2650
2651 await _tcpServer.SendAsync(echoMessage);
2652 }

다음을 참조함 : _currentServerEchoEnabled, _currentServerEncoding, _currentServerProtocol, _tcpServer, CreateTcpMessageByProtocol(), GetTcpServerChannelName(), Monitor, RunOnUiThread().

다음에 의해서 참조됨 : StartTcpServerAsync(), StopTcpServerAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnUdpPeerAMessageReceived()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.OnUdpPeerAMessageReceived ( object? sender,
MessageEnvelope message )
inlineprivate

Udp Peer A Message Received 이벤트 또는 상태 변경을 처리합니다.

매개변수
sender이벤트를 발생시킨 객체입니다.
message처리할 메시지입니다.

CommunicationSampleRuntime.cs 파일의 3110 번째 라인에서 정의되었습니다.

3111 {
3112 var protocol = _currentUdpPeerAProtocol;
3113 var encodingName = _currentUdpPeerAEncoding;
3114 var channelName = GetUdpPeerChannelName("A", protocol, encodingName);
3115
3116 RunOnUiThread(() =>
3117 {
3118 Monitor.AddReceiveLog(
3119 channelName,
3120 TransportKind.Udp,
3121 message);
3122 });
3123 }

다음을 참조함 : _currentUdpPeerAEncoding, _currentUdpPeerAProtocol, GetUdpPeerChannelName(), Monitor, RunOnUiThread().

다음에 의해서 참조됨 : ConnectUdpPeerAAsync(), DisconnectUdpPeerAAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnUdpPeerBMessageReceived()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.OnUdpPeerBMessageReceived ( object? sender,
MessageEnvelope message )
inlineprivate

Udp Peer B Message Received 이벤트 또는 상태 변경을 처리합니다.

매개변수
sender이벤트를 발생시킨 객체입니다.
message처리할 메시지입니다.

CommunicationSampleRuntime.cs 파일의 3149 번째 라인에서 정의되었습니다.

3150 {
3151 var protocol = _currentUdpPeerBProtocol;
3152 var encodingName = _currentUdpPeerBEncoding;
3153 var channelName = GetUdpPeerChannelName("B", protocol, encodingName);
3154
3155 RunOnUiThread(() =>
3156 {
3157 Monitor.AddReceiveLog(
3158 channelName,
3159 TransportKind.Udp,
3160 message);
3161 });
3162 }

다음을 참조함 : _currentUdpPeerBEncoding, _currentUdpPeerBProtocol, GetUdpPeerChannelName(), Monitor, RunOnUiThread().

다음에 의해서 참조됨 : ConnectUdpPeerBAsync(), DisconnectUdpPeerBAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ PrepareTcpClientTransportAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.PrepareTcpClientTransportAsync ( string protocol,
string encodingName )
inlineprivate

TCP Client Transport를 준비합니다. 연결은 수행하지 않고, 송신 큐와 재연결 Decorator를 구성합니다.

매개변수
protocol프로토콜 이름입니다.
encodingNamePlainText 외부 송수신 인코딩 이름입니다.
반환값
Prepare Tcp Client Transport Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1207 번째 라인에서 정의되었습니다.

1210 {
1211 protocol = NormalizeProtocol(protocol);
1212 encodingName = NormalizeTextEncodingName(encodingName);
1213
1214 if (_tcpClient is not null &&
1215 _currentClientProtocol == protocol &&
1216 _currentClientEncoding == encodingName)
1217 {
1218 return;
1219 }
1220
1221 if (_tcpClient is not null)
1222 {
1223 await DisconnectTcpClientAsync();
1224 }
1225
1226 _currentClientProtocol = protocol;
1227 _currentClientEncoding = encodingName;
1228
1229 EnsureTcpClientChannel(protocol, encodingName);
1230
1231 var port = GetTcpPort(protocol);
1232
1233 var rawTcpClient = new TcpClientTransport(
1234 new TcpClientTransportOptions
1235 {
1236 Host = "127.0.0.1",
1237 Port = port
1238 },
1239 CreateProtocolAdapter(
1240 protocol,
1241 "tcp",
1242 "Tcp",
1243 encodingName),
1244 CreateFrameCodec(protocol, encodingName));
1245
1246 _tcpClient = new ResilientMessageTransport(
1247 rawTcpClient,
1248 CreateSampleReconnectPolicy(),
1249 CreateSampleOutboundQueueOptions());
1250
1251 var channelName = GetTcpClientChannelName(protocol, encodingName);
1252
1253 AttachTcpResilientStateMonitor(
1254 _tcpClient,
1255 channelName);
1256
1257 AttachTcpClientQueueMonitor(
1258 _tcpClient,
1259 protocol,
1260 encodingName,
1261 channelName);
1262
1263 _tcpClient.MessageReceived += OnTcpClientMessageReceived;
1264
1265 Monitor.UpdateChannelState(
1266 channelName,
1267 _tcpClient.State);
1268 }

다음을 참조함 : _currentClientEncoding, _currentClientProtocol, _tcpClient, AttachTcpClientQueueMonitor(), AttachTcpResilientStateMonitor(), CreateFrameCodec(), CreateProtocolAdapter(), CreateSampleOutboundQueueOptions(), CreateSampleReconnectPolicy(), DisconnectTcpClientAsync(), EnsureTcpClientChannel(), GetTcpClientChannelName(), GetTcpPort(), Monitor, NormalizeProtocol(), NormalizeTextEncodingName(), OnTcpClientMessageReceived().

다음에 의해서 참조됨 : ConnectTcpClientAsync(), SendTcpClientAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ PublishRabbitMqAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.PublishRabbitMqAsync ( string exchangeName,
string routingKey,
string text )
inline

RabbitMQ 메시지를 발행합니다.

매개변수
exchangeNameExchange 이름입니다.
routingKeyRoutingKey입니다.
text송신 문자열입니다.
반환값
Publish Rabbit Mq Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 2429 번째 라인에서 정의되었습니다.

2433 {
2434 exchangeName = NormalizeText(exchangeName, _currentRabbitMqExchangeName);
2435 routingKey = NormalizeText(routingKey, _currentRabbitMqRoutingKey);
2436
2437 if (string.IsNullOrWhiteSpace(text))
2438 {
2439 text = "test";
2440 }
2441
2442 if (_rabbitMqBus is null)
2443 {
2444 AddRabbitMqErrorLog(
2445 "RabbitMQ.Publish.Skipped",
2446 "RabbitMQ is not connected.");
2447 return;
2448 }
2449
2450 if (_rabbitMqBus.State != ConnectionState.Connected)
2451 {
2452 AddRabbitMqErrorLog(
2453 "RabbitMQ.Publish.Skipped",
2454 $"RabbitMQ state is {_rabbitMqBus.State}.");
2455 return;
2456 }
2457
2458 _currentRabbitMqExchangeName = exchangeName;
2459 _currentRabbitMqRoutingKey = routingKey;
2460
2461 var message = CreateRabbitMqMessage(
2462 "Publish",
2463 routingKey,
2464 text);
2465
2466 Monitor.AddSendLog(
2467 RabbitMqChannelName,
2468 TransportKind.RabbitMq,
2469 message);
2470
2471 try
2472 {
2473 await _rabbitMqBus.PublishAsync(message);
2474 }
2475 catch (Exception ex)
2476 {
2477 AddRabbitMqErrorLog("RabbitMQ.Publish.Failed", ex.Message);
2478 }
2479 }

다음을 참조함 : _currentRabbitMqExchangeName, _currentRabbitMqRoutingKey, _rabbitMqBus, AddRabbitMqErrorLog(), CreateRabbitMqMessage(), Monitor, NormalizeText(), RabbitMqChannelName.

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ReceiveInMemory()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.ReceiveInMemory ( string text)
inline

InMemory 수동 수신 테스트 로그를 추가합니다.

매개변수
text수신으로 표시할 문자열입니다.

CommunicationSampleRuntime.cs 파일의 719 번째 라인에서 정의되었습니다.

720 {
721 AddInMemoryChannel();
722
723 if (string.IsNullOrWhiteSpace(text))
724 {
725 text = "Hello from SampleSmart manual receive";
726 }
727
728 var message = CreateTextMessage(
729 "Sample.Receive",
730 "sample.communication.manual-receive",
731 text,
732 "InMemory");
733
734 Monitor.AddReceiveLog(
735 InMemoryChannelName,
736 TransportKind.InMemory,
737 message);
738 }

다음을 참조함 : AddInMemoryChannel(), CreateTextMessage(), InMemoryChannelName, Monitor.

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ RunOnUiThread()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.RunOnUiThread ( Action action)
inlinestaticprivate

Run On Ui Thread 작업을 수행합니다.

매개변수
actionaction에 사용할 Action 값입니다.

CommunicationSampleRuntime.cs 파일의 4628 번째 라인에서 정의되었습니다.

4629 {
4630 ArgumentNullException.ThrowIfNull(action);
4631
4632 var dispatcher = Application.Current?.Dispatcher;
4633
4634 if (dispatcher is null || dispatcher.CheckAccess())
4635 {
4636 action();
4637 return;
4638 }
4639
4640 dispatcher.Invoke(action);
4641 }

다음에 의해서 참조됨 : AttachTcpClientQueueMonitor(), AttachTcpResilientStateMonitor(), AttachTcpServerClientCountMonitor(), OnSerialMessageReceived(), OnTcpClientMessageReceived(), OnTcpServerMessageReceived(), OnUdpPeerAMessageReceived(), OnUdpPeerBMessageReceived(), SubscribeInMemoryAsync(), SubscribeRabbitMqAsync().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ SendInMemoryAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.SendInMemoryAsync ( string text)
inline

InMemory MessageBus로 테스트 메시지를 송신합니다.

매개변수
text송신 문자열입니다.
반환값
Send In Memory Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 675 번째 라인에서 정의되었습니다.

676 {
677 AddInMemoryChannel();
678
679 if (_messageBus.State != ConnectionState.Connected)
680 {
681 await ConnectInMemoryAsync();
682 }
683
684 if (string.IsNullOrWhiteSpace(text))
685 {
686 text = "Hello from SampleSmart InMemory";
687 }
688
689 var message = CreateTextMessage(
690 "Sample.Send",
691 InMemoryRouteName,
692 text,
693 "InMemory");
694
695 Monitor.AddSendLog(
696 InMemoryChannelName,
697 TransportKind.InMemory,
698 message);
699
700 await _messageBus.PublishAsync(message);
701 }

다음을 참조함 : _messageBus, AddInMemoryChannel(), ConnectInMemoryAsync(), CreateTextMessage(), InMemoryChannelName, InMemoryRouteName, Monitor.

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ SendSerialAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.SendSerialAsync ( string protocol,
string text,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inline

현재 Serial Port로 메시지를 송신합니다.

매개변수
protocol프로토콜 이름입니다.
text송신 문자열입니다.
encodingNamePlainText 외부 송수신 인코딩 이름입니다.
반환값
Send Serial Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 2094 번째 라인에서 정의되었습니다.

2098 {
2099 protocol = NormalizeProtocol(protocol);
2100 encodingName = NormalizeTextEncodingName(encodingName);
2101
2102 if (string.IsNullOrWhiteSpace(text))
2103 {
2104 text = "test";
2105 }
2106
2107 if (_serialTransport is null ||
2108 _serialTransport.State != ConnectionState.Connected)
2109 {
2110 return;
2111 }
2112
2113 var message = CreateSerialMessageByProtocol(
2114 protocol,
2115 "Send",
2116 text,
2117 encodingName);
2118
2119 var channelName = GetSerialChannelName();
2120
2121 Monitor.AddSendLog(
2122 channelName,
2123 TransportKind.Serial,
2124 message);
2125
2126 await _serialTransport.SendAsync(message);
2127 }

다음을 참조함 : _serialTransport, CreateSerialMessageByProtocol(), GetSerialChannelName(), Monitor, NormalizeProtocol(), NormalizeTextEncodingName().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ SendTcpClientAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.SendTcpClientAsync ( string protocol,
string text,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inline

선택된 프로토콜로 TCP Client에서 서버로 메시지를 송신합니다.

매개변수
protocol프로토콜 이름입니다.
text송신 문자열입니다.
encodingNamePlainText 외부 송수신 인코딩 이름입니다.
반환값
Send Tcp Client Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1354 번째 라인에서 정의되었습니다.

1358 {
1359 protocol = NormalizeProtocol(protocol);
1360 encodingName = NormalizeTextEncodingName(encodingName);
1361
1362 if (string.IsNullOrWhiteSpace(text))
1363 {
1364 text = "Hello from Dreamine TCP Client";
1365 }
1366
1367 await PrepareTcpClientTransportAsync(protocol, encodingName);
1368
1369 if (_tcpClient is null)
1370 {
1371 return;
1372 }
1373
1374 var message = CreateTcpMessageByProtocol(
1375 protocol,
1376 "Client.Send",
1377 text,
1378 encodingName);
1379
1380 var channelName = GetTcpClientChannelName(protocol, encodingName);
1381
1382 Monitor.AddSendLog(
1383 channelName,
1384 TransportKind.Tcp,
1385 message);
1386
1387 await _tcpClient.SendAsync(message);
1388
1389 if (_tcpClient is ResilientMessageTransport resilientTransport)
1390 {
1391 var queueStatusMessage = CreateTcpMessageByProtocol(
1392 protocol,
1393 "Client.QueueStatus",
1394 $"QueueCount={resilientTransport.QueuedMessageCount}, State={_tcpClient.State}",
1395 encodingName);
1396
1397 Monitor.AddReceiveLog(
1398 channelName,
1399 TransportKind.Tcp,
1400 queueStatusMessage);
1401 }
1402
1403 Monitor.UpdateChannelState(
1404 channelName,
1405 _tcpClient.State);
1406 }

다음을 참조함 : _tcpClient, CreateTcpMessageByProtocol(), GetTcpClientChannelName(), Monitor, NormalizeProtocol(), NormalizeTextEncodingName(), PrepareTcpClientTransportAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ SendTcpServerAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.SendTcpServerAsync ( string protocol,
string text,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName,
string sendTargetMode = nameof(TcpServerSendTargetMode.Broadcast) )
inline

선택된 프로토콜로 TCP Server에서 연결된 클라이언트에게 메시지를 송신합니다.

매개변수
protocol프로토콜 이름입니다.
text송신 문자열입니다.
encodingNamePlainText 외부 송수신 인코딩 이름입니다.
sendTargetModesend Target Mode에 사용할 string 값입니다.
반환값
Send Tcp Server Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1045 번째 라인에서 정의되었습니다.

1050 {
1051 protocol = NormalizeProtocol(protocol);
1052 encodingName = NormalizeTextEncodingName(encodingName);
1053 var targetMode = NormalizeTcpServerSendTargetMode(sendTargetMode);
1054 _currentServerSendTargetMode = targetMode;
1055
1056 if (_rawTcpServer is not null)
1057 {
1058 _rawTcpServer.SendTargetMode = targetMode;
1059 UpdateTcpServerDescription(
1060 protocol,
1061 encodingName,
1062 _rawTcpServer.ConnectedClientCount,
1063 targetMode,
1064 _currentServerEchoEnabled);
1065 }
1066
1067 if (string.IsNullOrWhiteSpace(text))
1068 {
1069 text = "Hello from Dreamine TCP Server";
1070 }
1071
1072 if (_tcpServer is null ||
1073 _tcpServer.State != ConnectionState.Listening ||
1074 _currentServerProtocol != protocol ||
1075 _currentServerEncoding != encodingName)
1076 {
1077 await StartTcpServerAsync(protocol, encodingName, sendTargetMode, _currentServerEchoEnabled);
1078 }
1079
1080 if (_tcpServer is null)
1081 {
1082 return;
1083 }
1084
1085 var message = CreateTcpMessageByProtocol(
1086 protocol,
1087 $"Server.Send.{targetMode}",
1088 text,
1089 encodingName);
1090
1091 var channelName = GetTcpServerChannelName(protocol, encodingName);
1092
1093 Monitor.AddSendLog(
1094 channelName,
1095 TransportKind.Tcp,
1096 message);
1097
1098 await _tcpServer.SendAsync(message);
1099 }

다음을 참조함 : _currentServerEchoEnabled, _currentServerEncoding, _currentServerProtocol, _currentServerSendTargetMode, _rawTcpServer, _tcpServer, CreateTcpMessageByProtocol(), GetTcpServerChannelName(), Monitor, NormalizeProtocol(), NormalizeTcpServerSendTargetMode(), NormalizeTextEncodingName(), StartTcpServerAsync(), UpdateTcpServerDescription().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ SendUdpPeerAAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.SendUdpPeerAAsync ( string protocol,
string text,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inline

UDP Peer A에서 Peer B로 메시지를 송신합니다.

매개변수
protocol프로토콜 이름입니다.
text송신 문자열입니다.
encodingNamePlainText 외부 송수신 인코딩 이름입니다.
반환값
Send Udp Peer A Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1782 번째 라인에서 정의되었습니다.

1786 {
1787 protocol = NormalizeProtocol(protocol);
1788 encodingName = NormalizeTextEncodingName(encodingName);
1789
1790 if (string.IsNullOrWhiteSpace(text))
1791 {
1792 text = "Hello from Dreamine UDP Peer A";
1793 }
1794
1795 if (_udpPeerA is null ||
1796 _udpPeerA.State != ConnectionState.Connected ||
1797 _currentUdpPeerAProtocol != protocol ||
1798 _currentUdpPeerAEncoding != encodingName)
1799 {
1800 await ConnectUdpPeerAAsync(protocol, encodingName);
1801 }
1802
1803 if (_udpPeerA is null)
1804 {
1805 return;
1806 }
1807
1808 var message = CreateUdpMessageByProtocol(
1809 protocol,
1810 "PeerA.Send",
1811 text,
1812 encodingName);
1813
1814 var channelName = GetUdpPeerChannelName("A", protocol, encodingName);
1815
1816 Monitor.AddSendLog(
1817 channelName,
1818 TransportKind.Udp,
1819 message);
1820
1821 await _udpPeerA.SendAsync(message);
1822 }

다음을 참조함 : _currentUdpPeerAEncoding, _currentUdpPeerAProtocol, _udpPeerA, ConnectUdpPeerAAsync(), CreateUdpMessageByProtocol(), GetUdpPeerChannelName(), Monitor, NormalizeProtocol(), NormalizeTextEncodingName().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ SendUdpPeerBAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.SendUdpPeerBAsync ( string protocol,
string text,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inline

UDP Peer B에서 Peer A로 메시지를 송신합니다.

매개변수
protocol프로토콜 이름입니다.
text송신 문자열입니다.
encodingNamePlainText 외부 송수신 인코딩 이름입니다.
반환값
Send Udp Peer B Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1864 번째 라인에서 정의되었습니다.

1868 {
1869 protocol = NormalizeProtocol(protocol);
1870 encodingName = NormalizeTextEncodingName(encodingName);
1871
1872 if (string.IsNullOrWhiteSpace(text))
1873 {
1874 text = "Hello from Dreamine UDP Peer B";
1875 }
1876
1877 if (_udpPeerB is null ||
1878 _udpPeerB.State != ConnectionState.Connected ||
1879 _currentUdpPeerBProtocol != protocol ||
1880 _currentUdpPeerBEncoding != encodingName)
1881 {
1882 await ConnectUdpPeerBAsync(protocol, encodingName);
1883 }
1884
1885 if (_udpPeerB is null)
1886 {
1887 return;
1888 }
1889
1890 var message = CreateUdpMessageByProtocol(
1891 protocol,
1892 "PeerB.Send",
1893 text,
1894 encodingName);
1895
1896 var channelName = GetUdpPeerChannelName("B", protocol, encodingName);
1897
1898 Monitor.AddSendLog(
1899 channelName,
1900 TransportKind.Udp,
1901 message);
1902
1903 await _udpPeerB.SendAsync(message);
1904 }

다음을 참조함 : _currentUdpPeerBEncoding, _currentUdpPeerBProtocol, _udpPeerB, ConnectUdpPeerBAsync(), CreateUdpMessageByProtocol(), GetUdpPeerChannelName(), Monitor, NormalizeProtocol(), NormalizeTextEncodingName().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ StartTcpServerAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.StartTcpServerAsync ( string protocol,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName,
string sendTargetMode = nameof(TcpServerSendTargetMode.Broadcast),
bool echoEnabled = false )
inline

선택된 프로토콜로 TCP Server를 시작합니다.

매개변수
protocol프로토콜 이름입니다.
encodingNamePlainText 외부 송수신 인코딩 이름입니다.
sendTargetModesend Target Mode에 사용할 string 값입니다.
echoEnabledecho Enabled에 사용할 bool 값입니다.
반환값
Start Tcp Server Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 788 번째 라인에서 정의되었습니다.

793 {
794 protocol = NormalizeProtocol(protocol);
795 encodingName = NormalizeTextEncodingName(encodingName);
796 var targetMode = NormalizeTcpServerSendTargetMode(sendTargetMode);
797
798 if (_tcpServer is not null &&
799 _tcpServer.State == ConnectionState.Listening &&
800 _currentServerProtocol == protocol &&
801 _currentServerEncoding == encodingName)
802 {
803 _currentServerSendTargetMode = targetMode;
804 _currentServerEchoEnabled = echoEnabled;
805
806 if (_rawTcpServer is not null)
807 {
808 _rawTcpServer.SendTargetMode = targetMode;
809 UpdateTcpServerDescription(
810 protocol,
811 encodingName,
812 _rawTcpServer.ConnectedClientCount,
813 targetMode,
814 echoEnabled);
815 }
816
817 return;
818 }
819
820 if (_tcpServer is not null)
821 {
822 await StopTcpServerAsync();
823 }
824
825 _currentServerProtocol = protocol;
826 _currentServerEncoding = encodingName;
827 _currentServerSendTargetMode = targetMode;
828 _currentServerEchoEnabled = echoEnabled;
829
830 EnsureTcpServerChannel(protocol, encodingName);
831
832 var port = GetTcpPort(protocol);
833
834 _rawTcpServer = new TcpServerTransport(
835 new TcpServerTransportOptions
836 {
837 Host = "127.0.0.1",
838 Port = port,
839 SendTargetMode = targetMode
840 },
841 CreateProtocolAdapter(
842 protocol,
843 "tcp",
844 "Tcp",
845 encodingName),
846 CreateFrameCodec(protocol, encodingName));
847
848 _tcpServer = new ResilientMessageTransport(
849 _rawTcpServer,
850 CreateSampleReconnectPolicy(),
851 CreateSampleServerOutboundQueueOptions());
852
853 var channelName = GetTcpServerChannelName(protocol, encodingName);
854
855 AttachTcpResilientStateMonitor(
856 _tcpServer,
857 channelName);
858
859 AttachTcpServerClientCountMonitor(
860 _rawTcpServer,
861 protocol,
862 encodingName);
863
864 UpdateTcpServerDescription(
865 protocol,
866 encodingName,
867 _rawTcpServer.ConnectedClientCount,
868 targetMode,
869 echoEnabled);
870
871 _tcpServer.MessageReceived += OnTcpServerMessageReceived;
872
873 Monitor.UpdateChannelState(channelName, ConnectionState.Connecting);
874
875 await _tcpServer.ConnectAsync();
876
877 Monitor.UpdateChannelState(
878 channelName,
879 _tcpServer.State);
880 }

다음을 참조함 : _currentServerEchoEnabled, _currentServerEncoding, _currentServerProtocol, _currentServerSendTargetMode, _rawTcpServer, _tcpServer, AttachTcpResilientStateMonitor(), AttachTcpServerClientCountMonitor(), CreateFrameCodec(), CreateProtocolAdapter(), CreateSampleReconnectPolicy(), CreateSampleServerOutboundQueueOptions(), EnsureTcpServerChannel(), GetTcpPort(), GetTcpServerChannelName(), Monitor, NormalizeProtocol(), NormalizeTcpServerSendTargetMode(), NormalizeTextEncodingName(), OnTcpServerMessageReceived(), StopTcpServerAsync(), UpdateTcpServerDescription().

다음에 의해서 참조됨 : SendTcpServerAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ StartUdpLoopbackAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.StartUdpLoopbackAsync ( string protocol,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName )
inline

UDP Peer A와 Peer B를 모두 시작합니다.

매개변수
protocol프로토콜 이름입니다.
encodingNamePlainText 외부 송수신 인코딩 이름입니다.
반환값
Start Udp Loopback Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1462 번째 라인에서 정의되었습니다.

1465 {
1466 await ConnectUdpPeerAAsync(protocol, encodingName);
1467 await ConnectUdpPeerBAsync(protocol, encodingName);
1468 }

다음을 참조함 : ConnectUdpPeerAAsync(), ConnectUdpPeerBAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ StopAllAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.StopAllAsync ( )
inline

모든 통신 샘플 연결을 종료합니다.

반환값
Stop All Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 2540 번째 라인에서 정의되었습니다.

2541 {
2542 await DisconnectRabbitMqAsync();
2543 await DisconnectSerialAsync();
2544 await StopAllUdpAsync();
2545 await StopAllTcpAsync();
2546 await DisconnectInMemoryAsync();
2547 }

다음을 참조함 : DisconnectInMemoryAsync(), DisconnectRabbitMqAsync(), DisconnectSerialAsync(), StopAllTcpAsync(), StopAllUdpAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ StopAllTcpAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.StopAllTcpAsync ( )
inline

TCP Server와 TCP Client를 모두 종료합니다.

반환값
Stop All Tcp Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1424 번째 라인에서 정의되었습니다.

1425 {
1426 await DisconnectTcpClientAsync();
1427 await StopTcpServerAsync();
1428 }

다음을 참조함 : DisconnectTcpClientAsync(), StopTcpServerAsync().

다음에 의해서 참조됨 : StopAllAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ StopAllUdpAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.StopAllUdpAsync ( )
inline

UDP Peer A와 Peer B를 모두 종료합니다.

반환값
Stop All Udp Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 1736 번째 라인에서 정의되었습니다.

1737 {
1738 await DisconnectUdpPeerBAsync();
1739 await DisconnectUdpPeerAAsync();
1740 }

다음을 참조함 : DisconnectUdpPeerAAsync(), DisconnectUdpPeerBAsync().

다음에 의해서 참조됨 : StopAllAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ StopTcpServerAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.StopTcpServerAsync ( )
inline

현재 TCP Server를 종료합니다.

반환값
Stop Tcp Server Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 968 번째 라인에서 정의되었습니다.

969 {
970 var protocol = _currentServerProtocol;
971 var encodingName = _currentServerEncoding;
972 var channelName = GetTcpServerChannelName(protocol, encodingName);
973
974 if (_tcpServer is null)
975 {
976 if (Monitor.Channels.Any(x => x.Name == channelName))
977 {
978 Monitor.UpdateChannelState(channelName, ConnectionState.Disconnected);
979 }
980
981 return;
982 }
983
984 _tcpServer.MessageReceived -= OnTcpServerMessageReceived;
985
986 await _tcpServer.DisposeAsync();
987
988 _tcpServer = null;
989 _rawTcpServer = null;
990
991 if (Monitor.Channels.Any(x => x.Name == channelName))
992 {
993 Monitor.UpdateChannelState(channelName, ConnectionState.Disconnected);
994 }
995 }

다음을 참조함 : _currentServerEncoding, _currentServerProtocol, _rawTcpServer, _tcpServer, GetTcpServerChannelName(), Monitor, OnTcpServerMessageReceived().

다음에 의해서 참조됨 : StartTcpServerAsync(), StopAllTcpAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ SubscribeInMemoryAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.SubscribeInMemoryAsync ( )
inlineprivate

Subscribe In Memory Async 작업을 수행합니다.

반환값
Subscribe In Memory Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 2565 번째 라인에서 정의되었습니다.

2566 {
2567 if (_isInMemorySubscribed)
2568 {
2569 return;
2570 }
2571
2572 _isInMemorySubscribed = true;
2573
2574 await _messageBus.SubscribeAsync(
2575 InMemoryRouteName,
2576 (message, _) =>
2577 {
2578 RunOnUiThread(() =>
2579 {
2580 Monitor.AddReceiveLog(
2581 InMemoryChannelName,
2582 TransportKind.InMemory,
2583 message);
2584 });
2585
2586 return Task.CompletedTask;
2587 });
2588 }

다음을 참조함 : _isInMemorySubscribed, _messageBus, InMemoryChannelName, InMemoryRouteName, Monitor, RunOnUiThread().

다음에 의해서 참조됨 : CommunicationSampleRuntime().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ SubscribeRabbitMqAsync()

async Task SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.SubscribeRabbitMqAsync ( string exchangeName,
string queueName,
string routingKey )
inline

RabbitMQ 메시지 구독을 시작합니다.

매개변수
exchangeNameExchange 이름입니다.
queueNameQueue 이름입니다.
routingKeyRoutingKey입니다.
반환값
Subscribe Rabbit Mq Async 작업에서 생성한 Task 결과입니다.

CommunicationSampleRuntime.cs 파일의 2330 번째 라인에서 정의되었습니다.

2334 {
2335 exchangeName = NormalizeText(exchangeName, _currentRabbitMqExchangeName);
2336 queueName = NormalizeText(queueName, _currentRabbitMqQueueName);
2337 routingKey = NormalizeText(routingKey, _currentRabbitMqRoutingKey);
2338
2339 if (_rabbitMqBus is null)
2340 {
2341 AddRabbitMqErrorLog(
2342 "RabbitMQ.Subscribe.Skipped",
2343 "RabbitMQ is not connected.");
2344 return;
2345 }
2346
2347 if (_rabbitMqBus.State != ConnectionState.Connected)
2348 {
2349 AddRabbitMqErrorLog(
2350 "RabbitMQ.Subscribe.Skipped",
2351 $"RabbitMQ state is {_rabbitMqBus.State}.");
2352 return;
2353 }
2354
2355 if (_isRabbitMqSubscribed)
2356 {
2357 return;
2358 }
2359
2360 _currentRabbitMqExchangeName = exchangeName;
2361 _currentRabbitMqQueueName = queueName;
2362 _currentRabbitMqRoutingKey = routingKey;
2363
2364 try
2365 {
2366 await _rabbitMqBus.SubscribeAsync(
2367 routingKey,
2368 (message, _) =>
2369 {
2370 RunOnUiThread(() =>
2371 {
2372 Monitor.AddReceiveLog(
2373 RabbitMqChannelName,
2374 TransportKind.RabbitMq,
2375 message);
2376 });
2377
2378 return Task.CompletedTask;
2379 });
2380
2381 _isRabbitMqSubscribed = true;
2382 }
2383 catch (Exception ex)
2384 {
2385 AddRabbitMqErrorLog("RabbitMQ.Subscribe.Failed", ex.Message);
2386 }
2387 }

다음을 참조함 : _currentRabbitMqExchangeName, _currentRabbitMqQueueName, _currentRabbitMqRoutingKey, _isRabbitMqSubscribed, _rabbitMqBus, AddRabbitMqErrorLog(), Monitor, NormalizeText(), RabbitMqChannelName, RunOnUiThread().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ UpdateTcpServerDescription()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.UpdateTcpServerDescription ( string protocol,
string encodingName,
int clientCount,
TcpServerSendTargetMode targetMode,
bool echoEnabled )
inlineprivate

Update Tcp Server Description 작업을 수행합니다.

매개변수
protocolprotocol에 사용할 string 값입니다.
encodingNameencoding Name에 사용할 string 값입니다.
clientCountclient Count에 사용할 int 값입니다.
targetModetarget Mode에 사용할 TcpServerSendTargetMode 값입니다.
echoEnabledecho Enabled에 사용할 bool 값입니다.

CommunicationSampleRuntime.cs 파일의 2882 번째 라인에서 정의되었습니다.

2888 {
2889 var channelName = GetTcpServerChannelName(protocol, encodingName);
2890 var port = GetTcpPort(protocol);
2891
2892 Monitor.UpdateChannelDescription(
2893 channelName,
2894 CreateTcpServerDescription(protocol, encodingName, port, clientCount, targetMode, echoEnabled));
2895 }

다음을 참조함 : CreateTcpServerDescription(), GetTcpPort(), GetTcpServerChannelName(), Monitor.

다음에 의해서 참조됨 : AttachTcpServerClientCountMonitor(), SendTcpServerAsync(), StartTcpServerAsync(), UpdateTcpServerOptions().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ UpdateTcpServerOptions()

void SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.UpdateTcpServerOptions ( string protocol,
string encodingName = PlainTextProtocolOptions::Utf8EncodingName,
string sendTargetMode = nameof(TcpServerSendTargetMode.Broadcast),
bool echoEnabled = false )
inline

실행 중인 TCP Server의 송신 대상과 Echo 옵션을 갱신합니다.

매개변수
protocol프로토콜 이름입니다.
encodingNamePlainText 외부 송수신 인코딩 이름입니다.
sendTargetMode서버 송신 대상 정책입니다.
echoEnabledEcho 응답 사용 여부입니다.

CommunicationSampleRuntime.cs 파일의 922 번째 라인에서 정의되었습니다.

927 {
928 protocol = NormalizeProtocol(protocol);
929 encodingName = NormalizeTextEncodingName(encodingName);
930 var targetMode = NormalizeTcpServerSendTargetMode(sendTargetMode);
931
932 _currentServerSendTargetMode = targetMode;
933 _currentServerEchoEnabled = echoEnabled;
934
935 if (_rawTcpServer is null ||
936 _currentServerProtocol != protocol ||
937 _currentServerEncoding != encodingName)
938 {
939 return;
940 }
941
942 _rawTcpServer.SendTargetMode = targetMode;
943
944 UpdateTcpServerDescription(
945 protocol,
946 encodingName,
947 _rawTcpServer.ConnectedClientCount,
948 targetMode,
949 echoEnabled);
950 }

다음을 참조함 : _currentServerEchoEnabled, _currentServerEncoding, _currentServerProtocol, _currentServerSendTargetMode, _rawTcpServer, NormalizeProtocol(), NormalizeTcpServerSendTargetMode(), NormalizeTextEncodingName(), UpdateTcpServerDescription().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ _currentClientEncoding

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentClientEncoding = PlainTextProtocolOptions.Utf8EncodingName
private

current Client Encoding 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 300 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectTcpClientAsync(), DisconnectTcpClientAsync(), OnTcpClientMessageReceived(), PrepareTcpClientTransportAsync().

◆ _currentClientProtocol

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentClientProtocol = PlainTextProtocol
private

current Client Protocol 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 282 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectTcpClientAsync(), DisconnectTcpClientAsync(), OnTcpClientMessageReceived(), PrepareTcpClientTransportAsync().

◆ _currentRabbitMqExchangeName

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentRabbitMqExchangeName = "dreamine.sample.exchange"
private

current Rabbit Mq Exchange Name 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 428 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectRabbitMqAsync(), PublishRabbitMqAsync(), SubscribeRabbitMqAsync().

◆ _currentRabbitMqHost

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentRabbitMqHost = "localhost"
private

current Rabbit Mq Host 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 401 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectRabbitMqAsync().

◆ _currentRabbitMqPort

int SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentRabbitMqPort = 5672
private

current Rabbit Mq Port 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 410 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectRabbitMqAsync().

◆ _currentRabbitMqQueueName

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentRabbitMqQueueName = "dreamine.sample.queue"
private

current Rabbit Mq Queue Name 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 437 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectRabbitMqAsync(), SubscribeRabbitMqAsync().

◆ _currentRabbitMqRoutingKey

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentRabbitMqRoutingKey = "dreamine.sample.route"
private

current Rabbit Mq Routing Key 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 446 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AddRabbitMqErrorLog(), ConnectRabbitMqAsync(), PublishRabbitMqAsync(), SubscribeRabbitMqAsync().

◆ _currentRabbitMqVirtualHost

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentRabbitMqVirtualHost = "/"
private

current Rabbit Mq Virtual Host 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 419 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectRabbitMqAsync().

◆ _currentSerialBaudRate

int SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentSerialBaudRate = 9600
private

current Serial Baud Rate 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 391 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectSerialAsync().

◆ _currentSerialEncoding

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentSerialEncoding = PlainTextProtocolOptions.Utf8EncodingName
private

current Serial Encoding 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 373 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectSerialAsync().

◆ _currentSerialPortName

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentSerialPortName = string.Empty
private

current Serial Port Name 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 382 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectSerialAsync(), GetSerialChannelName().

◆ _currentSerialProtocol

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentSerialProtocol = RawAvailableProtocol
private

current Serial Protocol 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 364 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectSerialAsync().

◆ _currentServerEchoEnabled

bool SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentServerEchoEnabled
private

current Server Echo Enabled 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 318 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AttachTcpServerClientCountMonitor(), EnsureTcpServerChannel(), OnTcpServerMessageReceived(), SendTcpServerAsync(), StartTcpServerAsync(), UpdateTcpServerOptions().

◆ _currentServerEncoding

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentServerEncoding = PlainTextProtocolOptions.Utf8EncodingName
private

current Server Encoding 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 291 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OnTcpServerMessageReceived(), SendTcpServerAsync(), StartTcpServerAsync(), StopTcpServerAsync(), UpdateTcpServerOptions().

◆ _currentServerProtocol

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentServerProtocol = PlainTextProtocol
private

current Server Protocol 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 273 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OnTcpServerMessageReceived(), SendTcpServerAsync(), StartTcpServerAsync(), StopTcpServerAsync(), UpdateTcpServerOptions().

◆ _currentServerSendTargetMode

TcpServerSendTargetMode SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentServerSendTargetMode = TcpServerSendTargetMode.Broadcast
private

current Server Send Target Mode 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 309 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AttachTcpServerClientCountMonitor(), EnsureTcpServerChannel(), SendTcpServerAsync(), StartTcpServerAsync(), UpdateTcpServerOptions().

◆ _currentUdpPeerAEncoding

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentUdpPeerAEncoding = PlainTextProtocolOptions.Utf8EncodingName
private

current Udp Peer A Encoding 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 345 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectUdpPeerAAsync(), DisconnectUdpPeerAAsync(), OnUdpPeerAMessageReceived(), SendUdpPeerAAsync().

◆ _currentUdpPeerAProtocol

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentUdpPeerAProtocol = PlainTextProtocol
private

current Udp Peer A Protocol 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 327 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectUdpPeerAAsync(), DisconnectUdpPeerAAsync(), OnUdpPeerAMessageReceived(), SendUdpPeerAAsync().

◆ _currentUdpPeerBEncoding

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentUdpPeerBEncoding = PlainTextProtocolOptions.Utf8EncodingName
private

current Udp Peer B Encoding 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 354 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectUdpPeerBAsync(), DisconnectUdpPeerBAsync(), OnUdpPeerBMessageReceived(), SendUdpPeerBAsync().

◆ _currentUdpPeerBProtocol

string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._currentUdpPeerBProtocol = PlainTextProtocol
private

current Udp Peer B Protocol 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 336 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectUdpPeerBAsync(), DisconnectUdpPeerBAsync(), OnUdpPeerBMessageReceived(), SendUdpPeerBAsync().

◆ _isInMemorySubscribed

bool SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._isInMemorySubscribed
private

is In Memory Subscribed 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 190 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : SubscribeInMemoryAsync().

◆ _isRabbitMqSubscribed

bool SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._isRabbitMqSubscribed
private

is Rabbit Mq Subscribed 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 199 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectRabbitMqAsync(), DisconnectRabbitMqAsync(), SubscribeRabbitMqAsync().

◆ _messageBus

readonly IMessageBus SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._messageBus
private

message Bus 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 180 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : CommunicationSampleRuntime(), ConnectInMemoryAsync(), DisconnectInMemoryAsync(), SendInMemoryAsync(), SubscribeInMemoryAsync().

◆ _rabbitMqBus

RabbitMqMessageBus? SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._rabbitMqBus
private

rabbit Mq Bus 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 263 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectRabbitMqAsync(), DisconnectRabbitMqAsync(), PublishRabbitMqAsync(), SubscribeRabbitMqAsync().

◆ _rawTcpServer

TcpServerTransport? SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._rawTcpServer
private

raw Tcp Server 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 218 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : SendTcpServerAsync(), StartTcpServerAsync(), StopTcpServerAsync(), UpdateTcpServerOptions().

◆ _serialTransport

SerialPortTransport? SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._serialTransport
private

serial Transport 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 254 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectSerialAsync(), DisconnectSerialAsync(), SendSerialAsync().

◆ _tcpClient

IMessageTransport? SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._tcpClient
private

tcp Client 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 227 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectTcpClientAsync(), DisconnectTcpClientAsync(), PrepareTcpClientTransportAsync(), SendTcpClientAsync().

◆ _tcpServer

IMessageTransport? SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._tcpServer
private

tcp Server 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 209 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OnTcpServerMessageReceived(), SendTcpServerAsync(), StartTcpServerAsync(), StopTcpServerAsync().

◆ _udpPeerA

UdpTransport? SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._udpPeerA
private

udp Peer A 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 236 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectUdpPeerAAsync(), DisconnectUdpPeerAAsync(), SendUdpPeerAAsync().

◆ _udpPeerB

UdpTransport? SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime._udpPeerB
private

udp Peer B 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 245 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectUdpPeerBAsync(), DisconnectUdpPeerBAsync(), SendUdpPeerBAsync().

◆ DreamineEnvelopeProtocol

const string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.DreamineEnvelopeProtocol = "DreamineEnvelope"
staticprivate

◆ DreamineProtocolPort

const int SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.DreamineProtocolPort = 15001
staticprivate

Dreamine Protocol Port 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 124 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : GetTcpPort().

◆ InMemoryChannelName

const string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.InMemoryChannelName = "InMemory-Communication"
staticprivate

In Memory Channel Name 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 49 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AddInMemoryChannel(), ConnectInMemoryAsync(), DisconnectInMemoryAsync(), ReceiveInMemory(), SendInMemoryAsync(), SubscribeInMemoryAsync().

◆ InMemoryRouteName

const string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.InMemoryRouteName = "sample.communication.message"
staticprivate

In Memory Route Name 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 58 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : SendInMemoryAsync(), SubscribeInMemoryAsync().

◆ PlainTextProtocol

const string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.PlainTextProtocol = "PlainText"
staticprivate

◆ PlainTextProtocolPort

const int SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.PlainTextProtocolPort = 15002
staticprivate

Plain Text Protocol Port 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 133 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : GetTcpPort().

◆ RabbitMqChannelName

const string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.RabbitMqChannelName = "RabbitMQ-MessageBus"
staticprivate

Rabbit Mq Channel Name 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 68 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AddRabbitMqErrorLog(), ConnectRabbitMqAsync(), DisconnectRabbitMqAsync(), EnsureRabbitMqChannel(), PublishRabbitMqAsync(), SubscribeRabbitMqAsync().

◆ RabbitMqProtocol

const string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.RabbitMqProtocol = "RabbitMQ"
staticprivate

Rabbit Mq Protocol 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 77 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AddRabbitMqErrorLog(), CreateRabbitMqMessage().

◆ RawAvailableProtocol

const string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.RawAvailableProtocol = "RawAvailable"
staticprivate

◆ RawAvailableProtocolPort

const int SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.RawAvailableProtocolPort = 15002
staticprivate

Raw Available Protocol Port 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 142 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : GetTcpPort().

◆ RawJsonProtocol

const string SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.RawJsonProtocol = "RawJson"
staticprivate

◆ RawJsonProtocolPort

const int SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.RawJsonProtocolPort = 15003
staticprivate

Raw Json Protocol Port 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 151 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : GetTcpPort().

◆ UdpPeerALocalPort

const int SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.UdpPeerALocalPort = 16001
staticprivate

Udp Peer A Local Port 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 161 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectUdpPeerAAsync(), ConnectUdpPeerBAsync(), GetUdpLocalPort(), GetUdpRemotePort().

◆ UdpPeerBLocalPort

const int SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.UdpPeerBLocalPort = 16002
staticprivate

Udp Peer B Local Port 값을 보관합니다.

CommunicationSampleRuntime.cs 파일의 170 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectUdpPeerAAsync(), ConnectUdpPeerBAsync(), GetUdpLocalPort(), GetUdpRemotePort().

속성 문서화

◆ Monitor

◆ SerialProtocols

IReadOnlyList<string> SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.SerialProtocols
get

◆ TcpProtocols

IReadOnlyList<string> SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.TcpProtocols
get
초기값:

선택 가능한 TCP 프로토콜 목록입니다.

CommunicationSampleRuntime.cs 파일의 498 번째 라인에서 정의되었습니다.

498{ get; } =

◆ TcpServerSendTargetModes

IReadOnlyList<string> SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.TcpServerSendTargetModes
get
초기값:
=
[
nameof(TcpServerSendTargetMode.Broadcast),
nameof(TcpServerSendTargetMode.FirstClient),
nameof(TcpServerSendTargetMode.LastClient)
]

선택 가능한 TCP Server 송신 대상 정책 목록입니다.

CommunicationSampleRuntime.cs 파일의 559 번째 라인에서 정의되었습니다.

559{ get; } =

◆ TextEncodings

IReadOnlyList<string> SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.TextEncodings
get
초기값:
=
[
PlainTextProtocolOptions.Utf8EncodingName,
PlainTextProtocolOptions.KoreanCodePage949EncodingName
]

선택 가능한 외부 PlainText 인코딩 목록입니다.

CommunicationSampleRuntime.cs 파일의 545 번째 라인에서 정의되었습니다.

545{ get; } =

◆ UdpProtocols

IReadOnlyList<string> SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.UdpProtocols
get
초기값:

선택 가능한 UDP 프로토콜 목록입니다.

CommunicationSampleRuntime.cs 파일의 529 번째 라인에서 정의되었습니다.

529{ get; } =

◆ UdpTextEncodings

IReadOnlyList<string> SampleSmart.Pages.PageSub.CommunicationTabs.CommunicationSampleRuntime.UdpTextEncodings
get

선택 가능한 UDP PlainText 인코딩 목록입니다.

CommunicationSampleRuntime.cs 파일의 574 번째 라인에서 정의되었습니다.


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: