@platform/chat¶
Emplacement : modules/application/chat/
Dépendances : @platform/core, @platform/socket, @platform/doc, @platform/schema
Vue d'ensemble¶
@platform/chat fournit un système de messagerie en temps réel utilisant Socket.io. Ce module gère :
- L'envoi et la réception de messages en temps réel via WebSocket.
- La persistance des messages dans MongoDB via
@platform/doc. - Un service de chat enregistré comme service Socket.io.
- L'interface utilisateur de messagerie avec un écran de chat interactif.
Contextes¶
| Contexte | Point d'entrée | Contenu |
|---|---|---|
client |
src/client/index.ts |
ChatModule, ChatPage, ChatScreen |
server |
src/server/index.ts |
ServerChatService, publication des messages |
common |
src/common/index.ts |
ChatMessageSchema, ChatService, publications, i18n |
Common API¶
import {
ChatMessageSchema, chatPublication
} from '@platform/chat/common'
import type { ChatMessage, ChatService } from '@platform/chat/common'
| Export | Description |
|---|---|
ChatMessageSchema |
Schéma Zod pour les messages de chat |
ChatMessage |
Type TypeScript pour un message de chat |
chatPublication |
Définition de publication pour les messages de chat |
ChatService |
Interface du service de chat (méthodes appelables par le client) |
Server¶
Le serveur publie les messages de chat triés par horodatage et enregistre le service de chat pour les communications Socket.io :
import { ServerDocService } from '@platform/doc/server'
import { ServerService } from '@platform/socket/server'
ServerDocService.publish(chatPublication, () => [{ $sort: { timestamp: -1 } }])
ServerService.register('chat', ServerChatService)
Client¶
Le module exporte un ChatModule compatible avec le shell Application :
Composants¶
| Export | Description |
|---|---|
ChatModule |
Descripteur du module pour le shell d'application |
ChatPage |
Page principale du chat |
ChatScreen |
Écran de messagerie interactif |