push-сообщение websocket программно с использованием кода Java - PullRequest
0 голосов
/ 30 октября 2018

Java 8 Spring 5 MVC обработчик Websocket.

как программно передать клиенту сообщение websocket (используя javacode) на клиент?

Я последовал следующему примеру.

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

}

1 Ответ

0 голосов
/ 04 ноября 2018

Просто сохраните ваш WebSocketSession где-нибудь в своем коде, а затем вызовите sendMessage(TextMessage m), когда захотите отправить что-нибудь клиенту.

Например, вы можете сохранить ссылку WebSocketSession, когда в вашем обработчике вызывается метод OnOpen. Ссылка передается как параметр.

Но в любом случае, ваш код просто делает это по адресу:

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

Что вы подразумеваете под программно? например, вы можете создать протокол для себя и то, как вы обрабатываете сообщения.

...