问答

websocket端点无法获取spring的组件

作者:admin 2021-05-13 我要评论

@ServerEndpoint(value = "/chat/{token}")@Componentpublic class ChatEndpoint { //用来存储每一个客户端对象对应的ChatEndpoint对象 private static Map onli...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
@ServerEndpoint(value = "/chat/{token}")
@Component
public class ChatEndpoint {
 //用来存储每一个客户端对象对应的ChatEndpoint对象
 private static Map onlineUsers = new ConcurrentHashMap<>();
 @Autowired
 private MessageService messageService;
 }

这是一个websocket的端点,无法获取的组件messageService,当然这个组件在controller可以获得的,不是它的问题。

@Service
public class MessageServiceImpl implements MessageService {}

我应该才能获取得到在websocket端点获取spring的组件呢?

问题描述

问题出现的环境背景及自己尝试过哪些方法

相关代码

粘贴代码文本(请勿用截图)

你期待的结果是什么?实际看到的错误信息又是什么?

###

自己的问题自己解决。

@Configuration
public class WebSocketConfig {
    @Bean
 //注入ServerEndpointExporter,自动注册使用@ServerEndpoint注解的
 public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
    //解决websocket注入问题
 @Autowired
 public void setMessageService(MessageService messageService){
        ChatEndpoint.messageService = messageService;
    }
}
@ServerEndpoint(value = "/chat/{token}")
@Component
public class ChatEndpoint {
    //用来存储每一个客户端对象对应的ChatEndpoint对象
 private static Map<String,ChatEndpoint> onlineUsers = new ConcurrentHashMap<>();
    public static MessageService messageService;
}

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • websocket端点无法获取spring的组件

    websocket端点无法获取spring的组件

  • DolphinDB中本地时间和UTC时间如何实现

    DolphinDB中本地时间和UTC时间如何实现

  • crontab 上午8点到晚上12点怎么写?

    crontab 上午8点到晚上12点怎么写?

  • typescript对象类型(函数)应该怎么定

    typescript对象类型(函数)应该怎么定

腾讯云代理商
海外云服务器