Realtime UI 팩은 별도의 제품이 아닙니다. 각 구성 요소는 어울리는 sgcUI 제품 안에, 이미 사용 중인 유닛, 패키지, NuGet 패키지로 들어 있으며 해당 제품의 에디션을 따릅니다. 모든 구성 요소는 sgcUICore와 그것을 담고 있는 제품만 필요로 하며, sgcHTML은 필요하지 않습니다.
모든 모델에 데이터를 공급하는 sgcWebSockets의 WebSocket, MQTT, 서버 전송 이벤트 연결입니다.
제품: sgcUICore, sgcUICoreWS 브리지.
실시간 데이터 →Delphi 7부터 Delphi 13까지 VCL, Delphi XE6부터 FireMonkey, C++Builder, .NET WinForms, WPF, Avalonia를 지원합니다. Realtime UI 팩 도움말 항목 읽기.
모든 sgcUI 제품에서 누가 접속해 있는지 보여 줍니다.
TsgcUIPresenceModel은 사용자와 그 상태(온라인, 자리 비움, 다른 용무 중, 오프라인)를 상태 텍스트와 함께 관리합니다. 아바타 컨트롤이 모델을 따르므로 상태가 바뀌면 그 사용자의 모든 아바타와 표시점이 한꺼번에 다시 그려집니다.
AddOrUpdate와 SetStatus로, 또는 변경 하나당 실시간 메시지 하나로 변경을 받습니다.도움말: 접속 상태, 아바타와 접속 상태 표시점.
데스크톱 애플리케이션을 위한 알림 센터입니다.
TsgcNotificationModel은 알림을 제목, 심각도, 범주, 읽음 상태와 함께 보관하고 읽지 않은 수를 관리합니다. 토스트 매니저, 수신함, 환경설정, 배지 링크가 모두 이를 따릅니다.
TsgcToolbarBadgeLink가 툴바 또는 리본 항목에 읽지 않은 수를 표시하며, 99를 넘으면 99+로 표시합니다.도움말: 알림, 토스트 알림, 알림 수신함, 알림 환경설정, 알림 실시간 메시지, TsgcToolbarBadgeLink.
누가 무엇을 했고 무엇이 바뀌었는지 보여 줍니다.
TsgcDashboardActivityModel은 각 활동을 행위자, 동사, 객체와 바뀐 필드로 기록합니다. 활동 피드와 감사 추적은 같은 모델의 두 가지 뷰입니다.
도움말: 활동 피드, 활동 실시간 메시지, 활동 타일, 감사 타일.
화면이 멈추지 않으면서 수천 줄의 로그를 따라갑니다.
TsgcGridLogModel은 로그 줄을 시간, trace부터 fatal까지의 수준, 소스, 메시지와 함께 보관하고, TsgcGridLogLink는 이를 가상 모드의 sgcGrid에 표시합니다. 로그 모델은 스레드 안전이므로 작업자 스레드가 줄을 직접 추가할 수 있습니다.
도움말: 로그 뷰어, TsgcGridLogModel, TsgcGridLogLink.
sgcUICoreWS 브리지의 실시간 소스는 서버가 sgcWebSockets 연결로 보내는 JSON 메시지를 받아 모델에 전달합니다. 컨트롤은 별도 코드 없이 즉시 따라갑니다.
| 소스 | sgcWebSockets 클라이언트 | 읽는 이벤트 | 메시지 선택 기준 |
|---|---|---|---|
TsgcUILiveSource_WebSocket | TsgcWebSocketClient | OnMessage, 모든 텍스트 메시지 | 메시지 멤버에 대한 필터 |
TsgcUILiveSource_MQTT | TsgcWSPClient_MQTT | OnMQTTPublish, 모든 퍼블리시 | MQTT 토픽 필터 |
TsgcUILiveSource_SSE | TsgcHTTP1Client | OnSSEMessage, 이벤트 스트림 | SSE 이벤트 유형 |
새로운 프로토콜은 없습니다. 각 모델은 자신의 피드의 실시간 메시지를 읽습니다. 변경 하나당 JSON 객체 하나이며, 피드를 지정하는 type 멤버와 op 멤버가 있습니다.
| 피드 | type | op | 모델 |
|---|---|---|---|
| 접속 상태 | presence, 선택 | upsert, remove, snapshot, clear | TsgcUIPresenceModel |
| 알림 | notification, 필수 | add, update, remove, read, unread, snapshot | TsgcNotificationModel |
| 활동 | activity, 필수 | add, update, remove, snapshot | TsgcDashboardActivityModel |
| 로그 | log, 선택 | append, batch, clear | TsgcGridLogModel |
{"type":"presence","op":"upsert","user":{"id":"u7","presence":"away","statusText":"Lunch"}}
{"type":"notification","op":"add","notification":{"id":"n2","title":"Build 812 passed","severity":"success"}}
{"type":"activity","op":"add","item":{"id":"a20","actorId":"u7","verb":"updated","objectName":"Invoice INV-17"}}
{"type":"log","op":"append","entry":{"level":"warning","source":"api","message":"Slow query"}}
oSource := TsgcUILiveSource_MQTT.Create(Self);
oSource.Client := MQTT;
// 모델마다 바인딩 하나, 토픽으로 선택
oBinding := oSource.Bindings.Add;
oBinding.Target := PresenceModel;
oBinding.Topic := 'ops/presence';
oBinding := oSource.Bindings.Add;
oBinding.Target := NotificationModel;
oBinding.Topic := 'ops/notifications';
oBinding := oSource.Bindings.Add;
oBinding.Target := ActivityModel;
oBinding.Topic := 'ops/activity';
oBinding := oSource.Bindings.Add;
oBinding.Target := LogModel;
oBinding.Topic := 'ops/log/+';
// 소스는 구독하지 않습니다. 클라이언트의 OnMQTTConnect에서 구독하세요
MQTT.Subscribe('ops/#');
실시간 소스는 Registered 에디션에만 포함되며, sgcUI의 모든 sgcWebSockets 브리지와 마찬가지로 sgcWebSockets가 필요합니다. 서버가 없거나 Community 빌드에서는 애플리케이션이 각 모델의 API를 대신 호출합니다. 접속 상태 모델의 AddOrUpdate와 SetStatus, 알림 모델의 Add 또는 Post, 활동 모델의 Add, 로그 모델의 Append입니다.
시뮬레이터로 구동되는, 12명 팀을 위한 운영 콘솔
Suite 데모 Realtime은 팩으로 운영 콘솔을 만듭니다. 툴바에는 배지가 읽지 않은 수인 종 아이콘, 현재 사용자의 아바타, 팀의 아바타 그룹이 있습니다. 명단은 모든 팀원을 접속 상태 표시점과 함께 보여 주고, 한 탭에는 활동 피드가, 다른 탭에는 감사 추적이 있으며, 알림 수신함은 환경설정 편집기 위에 놓이고, 로그 그리드는 최신 줄을 따라가며, 토스트 알림은 오른쪽 아래에 나타납니다.
--test result.txt로 실행하면 자체 점검이 번호가 붙은 PASS 또는 FAIL 줄로 하나씩 표시됩니다포함된 sgcUI 제품
다른 sgcUI 스위트 데모도 참조하세요.
모델, 컨트롤, 실시간 소스는 .NET에서도 이름이 같고 같은 JSON 메시지를 읽으며, 각 제품의 NuGet 패키지에 들어 있습니다.
TsgcUIPresenceModel(네임스페이스 esegece.sgcUICore), TsgcNotificationModel과 TsgcNotificationPreferences(esegece.sgcNavigation), TsgcToolbarBadgeLink(esegece.sgcToolbar), TsgcDashboardActivityModel(esegece.sgcDashboard), TsgcGridLogModel과 TsgcGridLogLink(esegece.sgcGrid).TsgcWinFormsAvatar, TsgcWinFormsToastManager, TsgcWinFormsNotificationInbox, TsgcWinFormsActivityFeed, TsgcWinFormsAuditTrail와 그 밖의 컨트롤이며, 각각 대응하는 TsgcWpf와 TsgcAvalonia 클래스가 있습니다.esegece.sgcUICore.sgcWebSockets의 TsgcUILiveSource_WebSocket, TsgcUILiveSource_MQTT, TsgcUILiveSource_SSE이며 Registered 전용입니다.esegece.sgcNavigation.Community, esegece.sgcGrid.Community와 같은 NuGet의 무료 Community 패키지는 Delphi Community 빌드와 같은 부분을 제외합니다.도움말: .NET 패키지, Realtime UI 팩.
모든 구성 요소는 해당 제품의 에디션을 따릅니다. .NET Community 패키지는 Delphi Community 빌드와 같은 부분을 제외합니다.
| 구성 요소 | 제품 | Community | Registered |
|---|---|---|---|
| 실시간 메시지를 포함한 접속 상태 모델, 아바타, 아바타 그룹, 접속 상태 표시점 | sgcUICore | ||
| 알림 모델, 토스트 알림, 수신함, 환경설정 | sgcNavigation | ||
| 실시간 알림 메시지 | sgcNavigation | — | |
| 툴바와 함께 쓰는 배지 링크 | sgcToolbar | ||
| 리본과 함께 쓰는 배지 링크 | sgcToolbar | — | |
| 활동 모델, 활동 피드, 감사 추적, 두 타일 | sgcDashboard | ||
| 실시간 활동 메시지 | sgcDashboard | — | |
| 로그 모델과 로그 링크 | sgcGrid | ||
| 실시간 로그 메시지 | sgcGrid | — | |
| WebSocket, MQTT, SSE 실시간 소스(sgcUICoreWS 브리지, sgcWebSockets 필요) | sgcUICore | — |
sgcUI 스위트에서 sgcNavigation, sgcToolbar, sgcGrid는 모든 에디션에, sgcDashboard는 Professional부터 포함됩니다. sgcUICore는 모든 제품에 포함되며, 모든 제품은 Delphi용과 .NET용으로 단독 판매도 됩니다. 기능 비교표, 에디션 도움말 항목, 가격을 참조하세요.
아니요. 각 구성 요소는 어울리는 sgcUI 제품 안에 들어 있습니다. 접속 상태와 아바타는 sgcUICore, 알림은 sgcNavigation, 읽지 않음 배지는 sgcToolbar, 활동 피드와 감사 추적은 sgcDashboard, 로그 뷰어는 sgcGrid에 있습니다. 해당 제품과 함께 같은 유닛, 패키지, NuGet 패키지로 제공됩니다.
sgcUICoreWS 브리지의 실시간 소스에만 필요합니다. 모델과 컨트롤은 sgcUICore와 자신의 제품만 필요로 하며, 서버가 없는 애플리케이션은 코드에서 구동합니다. 어떤 구성 요소도 sgcHTML은 필요하지 않습니다.
변경 하나당 JSON 객체 하나를 WebSocket으로, MQTT 브로커를 통해, 또는 서버 전송 이벤트로 보내는 모든 서버입니다. 네 가지 메시지 형식은 문서화되어 있으며 소스는 자체 프로토콜을 정의하지 않습니다. 바인딩은 기존 애플리케이션 프로토콜의 봉투를 풀 수도 있습니다.
브리지는 수신 전용입니다. 사용자가 알림을 읽거나 닫으면 애플리케이션이 같은 sgcWebSockets 클라이언트로 자체 프레임을 보냅니다. 실시간 소스 도움말 항목에 예제가 있습니다.
아니요. 소켓 스레드에 도착한 메시지는 큐에 쌓였다가 메인 스레드를 한 번만 거쳐 적용되므로, 로그 1,000줄이 한꺼번에 들어와도 한 번만 거칩니다. 로그 모델은 스레드 안전이므로 작업자 스레드가 직접 추가할 수도 있습니다. Delphi 7부터 2009까지는 메인 스레드에서 알리는 클라이언트의 기본 알림 방식을 유지하세요.
모든 구성 요소의 모델과 컨트롤, 그리고 실시간 접속 상태 메시지입니다. 알림, 활동, 로그 모델의 실시간 메시지, 배지 대상으로서의 리본, 실시간 소스는 Registered 전용입니다.
제품 페이지: sgcNavigation, sgcToolbar, sgcDashboard, sgcGrid, sgcWebSockets, sgcUI 스위트.