2015-07-24 31 views
9

Ho implementato Web Socket utilizzando Spring MVC e funziona correttamente per me lavoro da un browser a un altro browser che è aperto per quei socket che utilizzano questo codice.Come chiamare @SendTo dalla richiesta di chiamata normale i.e @RequestMapping

@MessageMapping("/hello") 
    @SendTo("/topic/greetings") 
    public HelloMessage greeting(HelloMessage message) throws Exception { 
     Thread.sleep(3000); // simulated delay 
     return message; 
    } 

Può uno aiutarmi per chi chiamare @SendTo ("/ topic/saluti") dai normali controller.I API hanno provare a utilizzare questo, ma non funziona per me

@RequestMapping(value = "/sendMessage") 
    @SendTo("/topic/greetings") 
    public HelloMessage sendMessage() throws Exception { 
     return new HelloMessage((int) Math.random(), "This is Send From Server"); 
    } 

qualche idea per questo?

Grazie

risposta

11

ho trovato soluzione per questo

@Autowired 
private SimpMessagingTemplate template; 


@RequestMapping(value = "/sendMessage") 
public void sendMessage() throws Exception { 
    this.template.convertAndSend("/topic/greetings", new HelloMessage(
      (int) Math.random(), "This is Send From Server")); 
} 

utilizzando questo siamo in grado di inviare un messaggio per aprire WebSocket.

Grazie