使用 Spring 4 WebSocket 从 Java 推送消息

2023-12-28

我想将消息从 Java 推送到 WebSocket 客户端。我已经成功地让一个 js 客户端发送到服务器并在 2 个 js 客户端上接收返回的消息,因此客户端代码工作正常。

我的问题是,我想在 Java 应用程序中发生事件时启动发送。例如,每次下 10 个订单时,都会向所有订阅的客户发送一条消息。这可能吗?

我当前的配置:

<websocket:message-broker application-destination-prefix="/app">
   <websocket:stomp-endpoint path="/hello">
        <websocket:sockjs/>
   </websocket:stomp-endpoint>
   <websocket:simple-broker prefix="/topic"/>
</websocket:message-broker>

@Controller
public class MessageController {
    @MessageMapping("/hello")
    @SendTo("/topic/greetings")
    public Greeting greeting() throws Exception {
       return new Greeting("Hello world");
    }
}

我希望能够做的是这样的:

public class OrderManager {
    @Autowired MessageController messageController;
    int orderCount = 0;

    public void processOrder(Order o) {
        orderCount++;
        if(orderCount % 10 == 0)
            messageController.greeting();
    }
}

所有订阅 websocket 的客户端都会收到一条消息。


您可以使用SimpMessagingTemplate.它会自动注册。只是autowire它可以存在于任何你想要的 Spring bean 中。

@Autowired
private SimpMessagingTemplate template;
...
this.template.convertAndSend("/topic/greetings", text);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Spring 4 WebSocket 从 Java 推送消息 的相关文章

  • SharePoint 2010 Web 服务上的 Java JBoss 401 错误

    我的代码在 Eclipse IDE 中测试时运行成功 我正在使用生成的 Copy wsdl 通过 Web 服务连接到 MS SharePoint 2010 当我在 JBoss 服务器上部署代码 运行 Adob e LifeCycle 时 我
  • 从 Windows Batch (cmd.exe) 中的文件读取环境变量

    我正在尝试从批处理文件中读取变量 以便稍后在批处理脚本 Java 启动器 中使用 理想情况下 我希望所有平台 Unix Windows 上的设置文件都具有相同的格式 并且也是有效的 Java 属性文件 也就是说 它应该看起来像这样 sett
  • 在 Java 中将字符串复制到文件的开头

    我想将一个字符串写入文件的开头 我该怎么做 我根本不知道如何添加字符串 这就是我到目前为止所做的 public static void prepend String filename String data throws IOExcepti
  • java中的散列是如何工作的?

    我正在尝试弄清楚java中的哈希值 例如 如果我想在哈希图中存储一些数据 它是否会有某种带有哈希值的底层哈希表 或者 如果有人能够对哈希的工作原理给出一个很好且简单的解释 我将非常感激 HashMap 基本上在内部实现为数组Entry 如果
  • 如何增加使用 SAX 解析 XML 文件的entityExpansionLimit

    我正在尝试使用 Java 中的 SAX 解析器解析一个 1 23 GB 的 XML 文件 我使用的是 Mac 操作系统和 JDK 1 7 0 51 不幸的是 我收到以下错误 The pasrser has encountered more
  • 将 Swing 集成到简单的文本冒险游戏中

    我对 Java 中的一些中级概念相当陌生 最近 我制作了一款名为 DazzleQuest 的文本冒险游戏 它完全在开发者控制台 终端中运行 它涉及到我的朋友作为角色 所以我想向他们展示它 并通过将命令行的功能和控制台的输出转移到一个简单的
  • 如何在休眠中持久保存实体期间验证实体的约束

    我有一个带有字段名称的实体 我希望它不超过255 所以我这样定义它 Entity public class A implements Serializable NotNull Size max 255 private String name
  • Java TCP Echo 服务器 - 广播

    我有一个简单的回显服务器 我希望当连接的用户向服务器键入任何内容时 所有其他客户端和该客户端都会收到消息 MOD 它现在不会发送给所有客户端 但它应该发送 而且我只是不知道我的代码出了什么问题 所以现在它只会将消息 MOD 发送给发送消息的
  • 控制启动时的竞争条件

    我有一些代码想要执行一些一次性初始化 但这段代码没有明确的生命周期 因此在初始化完成之前 我的逻辑可能会被多个线程调用 所以 我想基本上确保我的逻辑代码 等待 直到初始化完成 这是我的第一次剪辑 public class MyClass p
  • 当我打印出数组列表的索引时如何删除最后一个逗号[重复]

    这个问题在这里已经有答案了 List
  • 具有多个字符串的列表视图

    我正在尝试创建一个包含多个字符串的列表视图 现在我有一个可以实现的功能 while i lt 10 GETS DATA FROM WEBPAGE ETC a DATAFROMWEBPAGE1 b DATAFROMWEBPAGE2 c DAT
  • 在 XSSF 工作簿上设置密码保护

    我想为使用 poi 3 14 创建的 xlsx 文件添加密码保护 该文档声称 这是可能的 http poi apache org cryption html http poi apache org encryption html 使用我尝试
  • BODMAS系统的加法和减法

    我一直在构建一个简单的公式计算器 但一直被加法和减法困扰 正如您应该知道的 在计算方程时 您遵循优先级算术规则 即括号 顺序 幂函数 除法 乘法 加法和减法 问题是加法和减法具有相同的优先级 因此您可以从左到右阅读 到目前为止 这是我的代码
  • 如何查找类路径中具有指定名称的所有资源?

    我想列出类路径中具有特定名称的所有文件 我预计会发生多次 因此Class getResource String 不管用 基本上 我必须识别类路径中任何位置具有特定名称 例如 xyz properties 的所有文件 然后累积读取其中的元数据
  • Thread.interrupt() 和 Thread.interrupted() 到底是如何工作的? [复制]

    这个问题在这里已经有答案了 从设置线程状态的角度来看 我不清楚这两种方法 Java 文档说 Thread interrupt 设置线程中断状态标志 调用 Thread interrupted 方法给出线程的状态并清除该标志 当这在实际场景中
  • Android Studio错误的含义:未注释的参数覆盖@NonNull参数

    我正在尝试 Android Studio 创建新项目并添加默认值后onSaveInstanceState方法创建 MyActivity 类 当我尝试将代码提交到 Git 时 我收到一个我不明白的奇怪错误 代码是这样的 我得到的错误是这样的
  • 枚举

    我试图拥有一组扩展通用接口的枚举 例如 interface Fooable void someCommonMethod enum E1 implements Fooable some enumuerations and a definiti
  • 不幸的是 Project_Name 已停止

    我有一个简单的应用程序 您可以在文本视图中输入文本并按提交 它会在另一个活动中显示文本 然而 当我按下提交时 给我消息 不幸的是 发送已停止 我查看了SO上的其他线程 但是不幸的是 myfirstproject 在 java 中停止工作错误
  • 请解释为什么Java和C对此代码给出不同的答案

    public class Test public static void main String args int i 10 i i System out println value of i is i 输出是 10 当我在中执行类似的代码
  • Cassandra 会话与集群 有什么可分享的?

    考虑 Cassandra 的 Session 和 Cluster 类 Java 驱动程序 我想知道有什么区别 在 Hibernate 中 每次都会创建一个会话并共享会话工厂 从许多来源我了解到 它被认为是创建一个会话并在多个线程之间共享它

随机推荐

  • Elasticsearch 分析百分比

    我正在使用 Elasticsearch 1 7 3 来积累分析报告的数据 我有一个保存文档的索引 其中每个文档都有一个名为 持续时间 的数字字段 请求花费了多少毫秒 和一个名为 组件 的字符串字段 可以有许多具有相同组件名称的文档 Eg c
  • jQuery element.closest(...).attr 在使用each时不是一个函数

    当迭代某些 DOM 元素时 我发现无法在它们上使用 data 或 attr running each index element gt console log element closest data id gets me section
  • 将协作者添加到分叉的私人存储库

    我有免费的 GitHub 帐户并分叉了一个私人仓库 现在我想将协作者添加到我的分支中 但 设置 页面下没有 协作者 选项卡 免费计划不提供此功能吗 这可能是由于您分叉了一个private回购 因此 只有您分叉的原始存储库的所有者可以与其他用
  • 如何在 Linux 内核中将 __u32 转换为 __be32

    我有一个变量 be32 x 我有一个功能 u32 foo void u32 a return a 我需要将 foo 的返回值存储在变量中x x htonl foo 这是对的吗 我很困惑什么是返回类型ntohl and htonl 他们是相反
  • 私有继承和隐式转换

    我有一个私有继承的类std string 并增加了一些功能 我希望能够像这样使用这个类std string 所以我试图定义一个隐式转换运算符 operator string 然而 我不断得到inaccessible base error i
  • ConfigurationManager 是否可以与 ASP.NET core 的 appsettings.json 一起使用?

    我有一个 NET Standard 库 其中包含所有与 SQL 相关的代码 它甚至包含一些创建 SQL 连接的代码 该库需要从应用程序配置文件中读取以获取 SQL 连接字符串 图书馆正在使用典型的ConfigurationManager C
  • 如何使引导模式从底部淡入?

    如何使模态从底部到顶部淡入 默认情况下 它从页面顶部开始 我想把它放在页脚中 有专门的类吗 我修改CSS 这个怎么做 div class modal fade bs example modal lg div class modal dial
  • iOS6 上 MapKit 的性能问题

    更新到 iOS 6 后 我注意到平移或缩放具有多个叠加层的 MKMapView 时 服务器性能会下降 我创建的一个应用程序有大约 600 个各种颜色的多边形覆盖 并且在 iOS 5 上运行无延迟 即使在较旧的 iOS 设备上 现在在 iOS
  • 在 Matlab 中创建相关图

    I m trying to emulate this graph 如果我有一个相关矩阵 如何创建这样的输出 如果你有一个n x n相关矩阵M 和一个向量L长度n包含每个垃圾箱的标签 您可以使用如下所示的内容 imagesc M plot t
  • pandas 中的运行总和(无循环)

    我想在 pandas 数据帧上建立一个运行总和 我有类似的东西 10 10 2012 50 0 10 11 2012 10 90 10 12 2012 100 5 我想得到 10 10 2012 50 0 10 11 2012 40 90
  • 如何在gnuplot中分割密钥?

    我已经在 gnuplot 中绘制了这张表 正如您所看到的 密钥应该分为两部分 前 4 个键应保留在原来的位置 但其余 4 个键应向下移动 以免与数据交叉 我怎样才能以这种方式分割密钥 一个plot只支持一个key 所以不能拆分 此外 所有数
  • 断言在 python 中使用 json 字符串调用的模拟函数

    用 python 编写一些单元测试 并使用 MagicMock 模拟一个接受 JSON 字符串作为输入的方法 在我的单元测试中 我想断言它是用给定的参数调用的 但是我遇到了断言语句的问题 因为除了字符串的断言语句之外 字典中对象的顺序并不重
  • 如何手动将具有固定纵横比的视口安装到其父级中,这样就不会像 ggplot 那样浪费空间?

    我有一个视口 它必须具有固定的纵横比 因为它的本机坐标系中的 x 和 y 单位之间的距离必须相等 我想将此视口放入父视口中 以便它能够最大程度地缩放 但保持其纵横比 使用网格单元 snpc 我能够保持纵横比 尽管我无法达到最大程度 请参阅下
  • ASP.NET 应用程序的国际化

    你们如何处理 ASP NET 应用程序的翻译 国际化 您如何与翻译人员合作 我们有需要提供德语 法语 意大利语 英语版本的 ASP NET 应用程序 我们到处都使用字符串资源 然而 我们的翻译人员不止一次告诉我们 只得到一堆 txtMyTe
  • Python Pandas:平衡不平衡的数据集(用于面板分析)

    我知道这可能很容易做到 我可以在 Stata 中完成 但我正在尝试转向 Python 我有一个很大的数据集 它不平衡 它看起来像这样 我需要获取如下数据集 欢迎任何指导 多谢 一种方法是将 年份 设置为另一级索引set index rein
  • 帮助将 libical 等库安装到 Xcode 中

    我想在我的项目中使用 libical 库 但我以前从未使用过外部库 我已经下载了 libical 文件 但我几乎卡在那里 我不知道如何 或者即使 我需要构建 提取它们 然后如何将它们放入 Xcode 任何帮助将不胜感激 谢谢 如果这是一个预
  • ASP.NET 5 HTML5 历史

    我正在将我的项目升级到 ASPNET5 我的应用程序是一个 AngularJS Web 应用程序 它使用 HTML5 Url 路由 HTML5 历史 API https developer mozilla org en US docs We
  • CarrierWave 与 ActiveResource

    有人对将 CarrierWave 与 ActiveResource 模型 在 Rails 3 中 一起使用有任何见解吗 我有一个包含文件名字段的 ActiveResource 模型 我想将文件保存到远程文件系统 我尝试了一些事情 但没有取得
  • std::array 聚合初始化需要大量令人困惑的花括号

    我有以下代码 enum class MessageDeliveryMethod POST MASTER BUBBLE NUM ENUMERATORS namespace using MapType std array lt std pair
  • 使用 Spring 4 WebSocket 从 Java 推送消息

    我想将消息从 Java 推送到 WebSocket 客户端 我已经成功地让一个 js 客户端发送到服务器并在 2 个 js 客户端上接收返回的消息 因此客户端代码工作正常 我的问题是 我想在 Java 应用程序中发生事件时启动发送 例如 每