【问题标题】:websocket push message programmatically using java code使用java代码以编程方式推送消息的websocket
【发布时间】:2018-10-30 16:01:41
【问题描述】:

java 8 Spring 5 mvc Websocket 处理程序。

它如何以编程方式(使用 javacode)将 websocket 消息推送到客户端?

我遵循以下示例。

http://boraji.com/spring-mvc-5-handling-websocket-message-example

创建TextWebsocketHandler

@Component
public class MyWebSocketHandler extends TextWebSocketHandler {

   @Override
   protected void handleTextMessage(WebSocketSession session, TextMessage message)
         throws Exception {

      String clientMessage = message.getPayload();

      if (clientMessage.startsWith("Hello") || clientMessage.startsWith("Hi")) {
         session.sendMessage(new TextMessage("Hello! What can i do for you?"));
      } else {
         session.sendMessage(
               new TextMessage("This is a simple hello world example of using Spring WebSocket."));
      }
   }
}

然后将其传递给 websocket configurere

@Configuration
@EnableWebSocket
@ComponentScan("com.boraji.tutorial.spring.websocket")
public class WebSocketConfig implements WebSocketConfigurer {

   @Autowired
   private MyWebSocketHandler myWebSocketHandler;

   @Override
   public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
      registry.addHandler(myWebSocketHandler, "/socketHandler");
   }

}

【问题讨论】:

    标签: spring-mvc java-8 spring-websocket


    【解决方案1】:

    只需将您的 WebSocketSession 保存在代码中的某个位置,然后在您想将某些内容发送回客户端时调用 sendMessage(TextMessage m)

    例如,您可以在处理程序中调用 OnOpen 方法时保存 WebSocketSession 引用。引用作为参数传递。

    但无论如何,您的代码只是在:

    session.sendMessage(
               new TextMessage("This is a simple hello world example of using Spring WebSocket."));
    

    session.sendMessage(new TextMessage("Hello! What can i do for you?"));
    

    您所说的以编程方式是什么意思?例如,您可以为自己创建一个协议以及如何处理消息。

    【讨论】:

      猜你喜欢
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      相关资源
      最近更新 更多