当前位置: 首页 > 知识库问答 >
问题:

使用Spring 4 WebSocket从Java推送消息

鲜于谦
2023-03-14

我想将消息从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的客户端都会收到一条消息。

共有1个答案

蒋培
2023-03-14

您可以使用SimpMessageTemplate 自动注册。只要autowire在任何你想要的Springbean中使用它。

@Autowired
private SimpMessagingTemplate template;
...
this.template.convertAndSend("/topic/greetings", text);

 类似资料:
  • 问题内容: 我想将消息从Java推送到WebSocket客户端。我已经成功地将js客户端发送到服务器,并在2个js客户端上收到了一条消息,因此客户端代码可以正常工作。 我的问题是,当Java应用程序中发生事件时,我想启动发送。因此,例如,每次下达10个订单时,都会向所有订阅的客户发送一条消息。这可能吗? 我当前的配置: 我想要做的是这样的: 并且所有订阅了Websocket的客户端都会收到一条消息

  • 我设置了亚马逊SNS和iOS应用程序,通过SNS控制台发送推送通知,并在iOS中接收。工作正常。 现在,我尝试从一台设备向另一台设备发送推送通知,但收到以下错误: -[AWSServiceInfo initWithInfoDictionary:checkRegion:|无法从读取提供程序配置的凭据。请检查您的<code>信息。plist如果您通过<code>Info.plist 这是我发送推送通知

  • 消息推送 PDF版下载 如流开放了消息发送接口,企业可以使用这些接口让企业应用与用户间进行双向通信。 推送消息 向成员推送消息 请求方式:POST(HTTPS) 请求地址:https://api.im.baidu.com/api/message/send?access_token=ACCESS_TOKEN 请求body:(每种类型的消息请求body不同,详见消息推送格式) 参数说明: 参数 类型

  • 1、离线消息 接口说明: 接口类型:回调型接口 接口作用:智齿将客服发送给用户的离线消息推送至企业预先配置好的回调地址上。 请求方法: POST 请求格式: { "type": 202, //消息类型,表示客服发送消息给客户 "partnerId": "", //企业自己的用户id "msgId": "" ,//消息id "content": "" ,//客

  • 问题内容: 我想使用Java将“推送通知”消息发送到特定的iPhone设备。 我不知道该怎么做。 我对此进行了谷歌搜索,他们建议使用“ PayLoad”类,但不要从任何jar文件中获取此类。 请有人指导我通过Java将推送通知消息发送到iPhone吗? 问题答案: 使用JavaPNS。例如:

  • 我已在中创建了我的应用程序并配置为云消息传递。当我从控制台发送通知时,设备会收到通知,但如果我尝试通过Rest API(使用PostMan)发送。然后通知不会到达设备,但响应显示为成功。 这是我的邮差请求 URI-https://fcm.googleapis.com/fcm/send 标题:内容类型:应用程序/json授权:密钥=MY_SERVER_KEY 正文:{“数据”:{“标题”:“火力基地