Class WebSocketChatController
java.lang.Object
com.finconsgroup.itserr.marketplace.usercommunication.dm.controller.WebSocketChatController
- All Implemented Interfaces:
WebSocketChatApi
STOMP/WebSocket controller implementing WebSocketChatApi.
Handles messaging, join/leave, typing indicators, read receipts, and notifications over WS.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddUser(UUID conversationId, InputChatMessageDto inputChatMessageDto, WebSocketAuthentication authentication, org.springframework.messaging.simp.SimpMessageHeaderAccessor headerAccessor) Handle user joining a conversationvoidbroadcastMessageStatusUpdate(UUID conversationId, String messageId, boolean delivered, boolean read, String readByUserId) Broadcast message status update to conversation participantsvoidbroadcastSystemMessage(UUID conversationId, String content) Broadcast system message to all users in a conversationvoidremoveUser(UUID conversationId, InputChatMessageDto inputChatMessageDto, WebSocketAuthentication authentication, org.springframework.messaging.simp.SimpMessageHeaderAccessor headerAccessor) Handle user leaving a conversationvoidsendDirectMessage(UUID receiverId, InputChatMessageDto inputChatMessageDto, WebSocketAuthentication authentication) Send direct message to a specific user (creates or uses existing direct conversation)voidsendInvitationNotification(UUID conversationId, UUID invitedUserId, WebSocketAuthentication authentication) Send invitation notification for group chatsvoidsendMessage(UUID conversationId, @Valid InputChatMessageDto inputChatMessageDto, WebSocketAuthentication authentication, org.springframework.messaging.simp.SimpMessageHeaderAccessor headerAccessor) Handle chat messages sent to a specific conversationvoidsendTypingIndicator(UUID conversationId, InputTypingMessageDto inputTypingMessageDto, WebSocketAuthentication authentication) Handle typing indicatorsvoidsendUserNotification(UUID userId, String content, MessageType messageType) Send notification to a specific user
-
Constructor Details
-
WebSocketChatController
public WebSocketChatController()
-
-
Method Details
-
sendMessage
@MessageMapping("/conversation/{conversationId}") public void sendMessage(@DestinationVariable UUID conversationId, @Valid @Payload @Valid InputChatMessageDto inputChatMessageDto, WebSocketAuthentication authentication, org.springframework.messaging.simp.SimpMessageHeaderAccessor headerAccessor) Handle chat messages sent to a specific conversation- Specified by:
sendMessagein interfaceWebSocketChatApi
-
addUser
@MessageMapping("/conversation/{conversationId}/join") public void addUser(@DestinationVariable UUID conversationId, @Payload InputChatMessageDto inputChatMessageDto, WebSocketAuthentication authentication, org.springframework.messaging.simp.SimpMessageHeaderAccessor headerAccessor) Handle user joining a conversation- Specified by:
addUserin interfaceWebSocketChatApi
-
removeUser
@MessageMapping("/conversation/{conversationId}/leave") public void removeUser(@DestinationVariable UUID conversationId, @Payload InputChatMessageDto inputChatMessageDto, WebSocketAuthentication authentication, org.springframework.messaging.simp.SimpMessageHeaderAccessor headerAccessor) Handle user leaving a conversation- Specified by:
removeUserin interfaceWebSocketChatApi
-
sendTypingIndicator
@MessageMapping("/conversation/{conversationId}/typing") public void sendTypingIndicator(@DestinationVariable UUID conversationId, @Payload InputTypingMessageDto inputTypingMessageDto, WebSocketAuthentication authentication) Handle typing indicators- Specified by:
sendTypingIndicatorin interfaceWebSocketChatApi
-
sendDirectMessage
@MessageMapping("/conversation/direct/{receiverId}") public void sendDirectMessage(@DestinationVariable UUID receiverId, @Payload InputChatMessageDto inputChatMessageDto, WebSocketAuthentication authentication) Send direct message to a specific user (creates or uses existing direct conversation)- Specified by:
sendDirectMessagein interfaceWebSocketChatApi
-
broadcastSystemMessage
Broadcast system message to all users in a conversation- Specified by:
broadcastSystemMessagein interfaceWebSocketChatApi
-
sendUserNotification
Send notification to a specific user- Specified by:
sendUserNotificationin interfaceWebSocketChatApi
-
sendInvitationNotification
public void sendInvitationNotification(UUID conversationId, UUID invitedUserId, WebSocketAuthentication authentication) Send invitation notification for group chats- Specified by:
sendInvitationNotificationin interfaceWebSocketChatApi
-
broadcastMessageStatusUpdate
public void broadcastMessageStatusUpdate(UUID conversationId, String messageId, boolean delivered, boolean read, String readByUserId) Broadcast message status update to conversation participants
-