//定义websoket前缀

registry.setApplicationDestinationPrefixes(Constant.WEBSOCKETPATHPERFIX);

}

}

service

@Service

public class WebSocketService {

@Autowired

private SimpMessagingTemplate template;

/**

* 广播

* 发给所有在线用户

* @param msg

*/

public void sendMsg(WiselyResponse msg) {

template.convertAndSend(Constant.PRODUCERPATH, msg);

}

/**

* 发送给指定用户

* @param users

* @param msg

*/

public void send2Users(List users, WiselyResponse msg) {

users.forEach(userName -> {

template.convertAndSendToUser(userName, Constant.P2PPUSHPATH, msg);

});

}

}

控制器

@Controller

public class WsController {

@Resource

WebSocketService webSocketService;

@MessageMapping(Constant.FORETOSERVERPATH)//@MessageMapping和@RequestMapping功能类似,用于设置URL映射地址,浏览器向服务器发起请求,需要通过该地址。

@SendTo(Constant.PRODUCERPATH)//如果服务器接受到了消息,就会对订阅了@SendTo括号中的地址传送消息。

public WiselyResponse say(WiselyMessage message) throws Exception {

List users = Lists.newArrayList();

users.add(“d892bf12bf7d11e793b69c5c8e6f60fb”);//此处写死只是为了方便测试,此值需要对应页面中订阅个人消息的userId

webSocketService.send2Users(users, new WiselyResponse(“admin hello”));

return new WiselyResponse("Welcome, " + message.getName() + “!”);

}

}

页面
Spring Boot+WebSocket+广播式

貌似你的浏览器不支持websocket

连接

断开连接

发送

测试

点击连接控制台输出

表示连接成功并且订阅了两个地址

此时在文本框内输入任意值,结果如图所示则代表成功

控制台中显示依次为,发送信息,目标长度内容

此时服务端控制器接收到请求

同时给指定用户发送了消息,所以控制台接收到消息

同时因为控制器有注解@SendTo所以会向@SendTo的地址广播消息,客户端订阅了广播地址所有控制台显示接收了消息

推荐文章

更多项目源码

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
,同时减轻大家的负担。**

[外链图片转存中…(img-mpfcvokr-1715600931443)]

[外链图片转存中…(img-A4Q0671l-1715600931443)]

[外链图片转存中…(img-teO6AEtH-1715600931444)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐