簡體   English   中英

使用Java代碼以編程方式將websocket推送消息

[英]websocket push message programmatically using java code

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");
   }

}

只需將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?"));

您以編程方式是什么意思? 例如,您可以為自己創建協議以及如何處理消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM