错误
Searching methods to handle SEND /app/intoConference session=ix5ko3ds
2020-07-20 08:43:50 -199232 DEBUG - No matching message handler methods.**
spring5.0.0
tomcat8.5.49
controller
package net.nblh.opinion.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import net.nblh.utils.ShiroUtils;
import net.nblh.videoconferencing.service.impl.MessageManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.messaging.simp.annotation.SubscribeMapping;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.Map;
@Controller
public class OpinionMessageController {
@Autowired
public SimpMessagingTemplate template;
@Autowired
public MessageManager messageManager;
@MessageMapping("intoConference")
public void intoConference(Map rm) {
System.out.println("进入会议方法");
for(int i =1;i<=20;i++) {
/*广播使用convertAndSendToUser方法,第一个参数为用户id,此时js中的订阅地址为
"/user/" + 用户Id + "/message",其中"/user"是固定的*/
template.convertAndSendToUser(ShiroUtils.getUserId(),"/message","");
}
}
websocketconfig
package net.nblh.videoconferencing.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.ChannelRegistration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer{
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/topic");
registry.setApplicationDestinationPrefixes("/app","/queue");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/websoct-mcu","/opinionSocketJSServer").
addInterceptors(new HttpHandShakeIntecepter()).
setAllowedOrigins("*").withSockJS();
}
@Override
public void configureClientOutboundChannel(ChannelRegistration registration) {
super.configureClientOutboundChannel(registration);
}
@Override
public void configureClientInboundChannel(ChannelRegistration registration) {
registration.interceptors(new GetHeaderParamInterceptor() );
super.configureClientInboundChannel(registration);
}
}
spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">
<context:component-scan base-package="net.nblh.**.controller" />