java.lang.Object
com.finconsgroup.itserr.marketplace.usercommunication.dm.controller.WebSocketChatController
All Implemented Interfaces:
WebSocketChatApi

@Controller public class WebSocketChatController extends Object implements WebSocketChatApi
STOMP/WebSocket controller implementing WebSocketChatApi. Handles messaging, join/leave, typing indicators, read receipts, and notifications over WS.
  • 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:
      sendMessage in interface WebSocketChatApi
    • 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:
      addUser in interface WebSocketChatApi
    • 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:
      removeUser in interface WebSocketChatApi
    • sendTypingIndicator

      @MessageMapping("/conversation/{conversationId}/typing") public void sendTypingIndicator(@DestinationVariable UUID conversationId, @Payload InputTypingMessageDto inputTypingMessageDto, WebSocketAuthentication authentication)
      Handle typing indicators
      Specified by:
      sendTypingIndicator in interface WebSocketChatApi
    • 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:
      sendDirectMessage in interface WebSocketChatApi
    • broadcastSystemMessage

      public void broadcastSystemMessage(UUID conversationId, String content)
      Broadcast system message to all users in a conversation
      Specified by:
      broadcastSystemMessage in interface WebSocketChatApi
    • sendUserNotification

      public void sendUserNotification(UUID userId, String content, MessageType messageType)
      Send notification to a specific user
      Specified by:
      sendUserNotification in interface WebSocketChatApi
    • sendInvitationNotification

      public void sendInvitationNotification(UUID conversationId, UUID invitedUserId, WebSocketAuthentication authentication)
      Send invitation notification for group chats
      Specified by:
      sendInvitationNotification in interface WebSocketChatApi
    • broadcastMessageStatusUpdate

      public void broadcastMessageStatusUpdate(UUID conversationId, String messageId, boolean delivered, boolean read, String readByUserId)
      Broadcast message status update to conversation participants