1.创建springboot项目(略)
2.引入pom文件
<!--RabbitMQ-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<!--WebSocket-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
3.docker 部署 RabbitMQ
docker pull rabbitmq
docker run -dit --name Myrabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS='1qaz!QAZ' -p 15672:15672 -p 5672:5672 rabbitmq
4.下载插件
正常访问是访问不到的原因是没有下载插件
docker exec -it 容器名称 sh
rabbitmq-plugins enable rabbitmq_management
5访问localhost:15672
6.编写 mq的java代码
https://blog.csdn.net/qq_35387940/article/details/100514134 他写就不错跟他学的
7.编写 websocket
webSocketServer
其中@ServerEndpoint("/websocket/{userId}") 为前端访问的用的
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.concurrent.ConcurrentHashMap;
@ServerEndpoint("/websocket/{userId}")
@Component
public class WebSocketServer {
private static final Logger log = LoggerFactory.getLogger(WebSocketServer.class);
/**
* 静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。
*/
private static int onlineCount = 0;
/**
* concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。
*/
<