Record Class WebSocketMessagingTemplate

java.lang.Object
java.lang.Record
cn.herodotus.engine.message.websocket.messaging.WebSocketMessagingTemplate

public record WebSocketMessagingTemplate(org.springframework.messaging.simp.SimpMessagingTemplate simpMessagingTemplate, org.springframework.messaging.simp.user.SimpUserRegistry simpUserRegistry) extends Record

Description: WebSocket 消息发送模版

单独抽取一个 MessagingTemplate 用作 WebSocket 消息发送的基本操作类。 MultipleInstanceMessageSenderSingleInstanceMessageSenderMultipleInstanceMessageSyncConsumer 三个类均使用该类进行基础操作。 这样做的原因是多实例情况下还包含消息的同步,发送消息同步的实例既是同步消息的生产者,又是消费者。如果统一使用 WebSocketMessageSender 注入的 Bean。就不好区分各种情况,就会出现发送同步消息,存在循环发送消息的风险。

作者:
: gengwei.zheng
Date:
: 2023/10/26 23:26
  • 构造器概要

    构造器
    构造器
    说明
    WebSocketMessagingTemplate(org.springframework.messaging.simp.SimpMessagingTemplate simpMessagingTemplate, org.springframework.messaging.simp.user.SimpUserRegistry simpUserRegistry)
    创建 WebSocketMessagingTemplate 记录的实例。
  • 方法概要

    修饰符和类型
    方法
    说明
    void
    broadcast(String destination, Object payload)
    发送 WebSocket 广播消息。
    final boolean
    指示某个其他对象是否“等于”此对象。
    org.springframework.messaging.simp.user.SimpUser
    getUser(String userId)
    根据用户 ID 获取到对应的 WebSocket 用户
    final int
    返回此对象的哈希代码值。
    boolean
    判断 WebSocket用户是否存在。
    void
    pointToPoint(String user, String destination, Object payload)
    发送 WebSocket 点对点消息。
    org.springframework.messaging.simp.SimpMessagingTemplate
    返回 simpMessagingTemplate 记录组件的值。
    org.springframework.messaging.simp.user.SimpUserRegistry
    返回 simpUserRegistry 记录组件的值。
    final String
    返回此记录的字符串表示形式。

    从类继承的方法 java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • 构造器详细资料

    • WebSocketMessagingTemplate

      public WebSocketMessagingTemplate(org.springframework.messaging.simp.SimpMessagingTemplate simpMessagingTemplate, org.springframework.messaging.simp.user.SimpUserRegistry simpUserRegistry)
      创建 WebSocketMessagingTemplate 记录的实例。
      参数:
      simpMessagingTemplate - simpMessagingTemplate 记录组件的值
      simpUserRegistry - simpUserRegistry 记录组件的值
  • 方法详细资料

    • pointToPoint

      public void pointToPoint(String user, String destination, Object payload)
      发送 WebSocket 点对点消息。发送信息给指定用户
      参数:
      user - 用户唯一标识
      destination - 消息同奥
      payload - 消息内容
    • broadcast

      public void broadcast(String destination, Object payload)
      发送 WebSocket 广播消息。发送全员信息
      参数:
      destination - 消息同奥
      payload - 消息内容
    • getUser

      public org.springframework.messaging.simp.user.SimpUser getUser(String userId)
      根据用户 ID 获取到对应的 WebSocket 用户
      参数:
      userId - 系统用户ID
      返回:
      WebSocket 用户 SimpUser
    • isUserExist

      public boolean isUserExist(String userId)
      判断 WebSocket用户是否存在。

      注意:只能查询到当前所在 WebSocket实例中的实时 WebSocket 用户信息。如果实时用户在不同的实例中,则查询不到。

      参数:
      userId - 用户ID
      返回:
      true 用户存在,false 用户不存在
    • toString

      public final String toString()
      返回此记录的字符串表示形式。此表示形式包含类型的名称,后跟每个记录组件的名称和值。
      指定者:
      toString 在类中 Record
      返回:
      此对象的字符串表示形式
    • hashCode

      public final int hashCode()
      返回此对象的哈希代码值。此值派生自每个记录组件的哈希代码。
      指定者:
      hashCode 在类中 Record
      返回:
      此对象的哈希代码值
    • equals

      public final boolean equals(Object o)
      指示某个其他对象是否“等于”此对象。如果两个对象属于同一个类,而且所有记录组件都相等,则这两个对象相等。 此记录中的所有组件都使用 Objects::equals(Object,Object) 进行比较。
      指定者:
      equals 在类中 Record
      参数:
      o - 要与之进行比较的对象
      返回:
      如果此对象与 o 参数相同,则为 true;否则为 false
    • simpMessagingTemplate

      public org.springframework.messaging.simp.SimpMessagingTemplate simpMessagingTemplate()
      返回 simpMessagingTemplate 记录组件的值。
      返回:
      simpMessagingTemplate 记录组件的值
    • simpUserRegistry

      public org.springframework.messaging.simp.user.SimpUserRegistry simpUserRegistry()
      返回 simpUserRegistry 记录组件的值。
      返回:
      simpUserRegistry 记录组件的值