ASP.NET Core SignalR은 오픈소스 라이브러리 실시간 웹 기능을 쉽게 추가할 수 있게 해줘요 앱에. 실시간 웹 기능은 다음을 가능하게 해요: 서버 측 코드가 클라이언트에 즉시 콘텐츠를 푸시.
SignalR에 적합한 사례:
- 다음을 필요로 하는 앱: 서버로부터의 고빈도 업데이트. 예시: 게임, 소셜 네트워크, 투표, 경매, 지도, GPS 앱.
- 대시보드 및 모니터링 앱. 예시: 회사 대시보드, 실시간 매출 업데이트, 여행 알림.
- 협업 앱. 화이트보드 앱 팀 회의 소프트웨어 협업 앱의 예시예요.
- 다음을 필요로 하는 앱: notifications. 소셜 네트워크, 이메일, 채팅, 게임, 여행 알림 및 기타 많은 앱이 알림을 사용해요.
SignalR Core sgcWebSockets 컴포넌트는 전송 계층으로 WebSocket을 사용해요 SignalR Core 서버에 연결하기 위해, 이 전송 계층이 지원되지 않으면 오류가 발생해요.
Delphi 코드 예시
SignalRCore.Invoke('SendMessage', ['John', 'Hello All.'], 'id-000001');
procedure OnSignalRCoreCompletion(Sender: TObject; Completion: TSignalRCore_Completion);
begin
if Completion.Error <> '' then
ShowMessage('Something goes wrong.')
else
ShowMessage('Invocation Successful!');
end;
호출(Invocations): 호출자가 피호출자에게 메시지를 보내요 호출이 완료되었음을 나타내는 메시지를 기대해요 선택적으로 호출 결과도 받아요
예제: 클라이언트가 다음을 호출해요: SendMessage 메서드와 매개변수로 다음을 전달해요: 사용자 이름과 텍스트 메시지. Invocation Id를 보내요 서버로부터 결과 메시지를 받기 위해.
SignalRCore.Invoke('SendMessage', ['John', 'Hello All.']);
Non-Blocking 호출(Invocations): 호출자가 피호출자에게 메시지를 보내요 and does not expect any further messages for this invocation. 호출(Invocations) can be sent without an Invocation ID value. 이는 호출이 "논블로킹"임을 나타내요.
예제: 클라이언트가 다음을 호출해요: SendMessage 메서드와 매개변수로 다음을 전달해요: 사용자 이름과 텍스트 메시지. 클라이언트는 서버로부터 어떠한 응답도 기대하지 않아요 호출 결과에 대해.
SignalRCore.InvokeStream('Counter', [10, 500], 'id-000002');
procedure OnSignalRCoreStreamItem(Sender: TObject; StreamItem: TSignalRCore_StreamItem; var Cancel: Boolean);
begin
DoLog('#stream item: ' + StreamItem.Item);
end;
procedure OnSignalRCoreCompletion(Sender: TObject; Completion: TSignalRCore_Completion);
begin
if Completion.Error <> '' then
ShowMessage('Something goes wrong.')
else
ShowMessage('Invocation Successful!');
end;
Streaming 호출(Invocations): 호출자가 피호출자에게 메시지를 보내요 and expects one or more results returned by the Callee 호출 종료를 나타내는 메시지가 뒤따라요.
예제: 클라이언트가 다음을 호출해요: Counter method 500밀리초 간격으로 10개의 숫자를 요청해요.
