채팅과 typing

Agent greeting(MessageSeq 1) · Customer reply(MessageSeq 2) · one-way SetTypingMsg

채팅과 typing Agent greeting(MessageSeq 1) · Customer reply(MessageSeq 2) · one-way SetTypingMsg SendChatMessageReq(metadata ConversationId) SendChatMessageReq SendChatMessageRes(MessageSeq=1) SendChatMessageRes(MessageSeq=1) ChatMessageNotify to customer binding ChatMessageNotify(MessageSeq=1) SendChatMessageReq SendChatMessageReq SendChatMessageRes(MessageSeq=2) SendChatMessageRes(MessageSeq=2) ChatMessageNotify to agent binding ChatMessageNotify(MessageSeq=2) SetTypingMsg(true) SetTypingMsg TypingChangedNotify to agent binding TypingChangedNotify Customer Client · Sequence participant Customer Client Session · Sequence participant Session ConversationSpot · Sequence participant ConversationSpot Agent Client · Sequence participant Agent Client

Chat response의 의미

  • • Chat message는 server 부여 MessageSeq와 접수 오류를 확인해야 하므로 request/reply다. Chat response는 접수·검증·MessageSeq 확정을 뜻하지만 상대방이 읽었음을 뜻하지 않는다.
  • • Agent greeting이 MessageSeq 1, Customer reply가 MessageSeq 2가 되며 반대 방향으로 같은 흐름을 따른다.

typing과 Closed 거부

  • • SetTypingMsg는 response가 없는 one-way send다. source-local admission 뒤 target handler와 상대방 수신을 보장하지 않으며, 상대방에 TypingChangedNotify가 도착하면 효과를 확인한다.
  • • Closed 상태의 SendChatMessageReq는 Application callback 거부이므로 typed `Rejected` 오류 response를 반환하고, Closed 상태의 SetTypingMsg는 조용히 무시한다. 이 domain 거부는 transport·route·protocol 실패의 Framework `ErrorKind`와 구분된다.