SignalR Core Delphi

· 컴포넌트

 ASP.NET Core SignalR은 오픈소스 라이브러리 실시간 웹 기능을 쉽게 추가할 수 있게 해줘요 앱에. 실시간 웹 기능은 다음을 가능하게 해요: 서버 측 코드가 클라이언트에 즉시 콘텐츠를 푸시.

SignalR에 적합한 사례:


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개의 숫자를 요청해요.