一、java 实现wobsocket 聊天室
开发工具:eclipse +jdk8+tomcat8.5+ssm
项目结构如下
网页聊天室界面如下,可以开多个页面
二、使用步骤
1.pom.xml 引入jar包
代码如下(示例):
<!-- 即时聊天websocket -->
<dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
2.java 代码(WsServer.java)
代码如下(示例):
package com.xx.xxx.websocket;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.util.HashSet;
import java.util.Set;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArraySet;
@ServerEndpoint("/webSocket/chat/{roomName}")
public class WsServer {
// 使用map来收集session,key为roomName,value为同一个房间的用户集合
// concurrentMap的key不存在时报错,不是返回null
private static final Map<String, Set<Session>> rooms = new ConcurrentHashMap();
@OnOpen
public void connect(@PathParam("roomName") String roomName, Session session) throws Exception {
// 将session按照房间名来存储,将各个房间的用户隔离
if (!rooms.containsKey(roomName)) {
// 创建房间不存在时&