给我一个样例代码
时间: 2023-07-10 22:11:56 浏览: 52
好的,以下是一个简单的Java WebSocket多人聊天室样例代码:
```java
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.websocket.EncodeException;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/chat")
public class ChatEndpoint {
private static List<Session> sessions = new ArrayList<>();
@OnOpen
public void onOpen(Session session) {
sessions.add(session);
}
@OnMessage
public void onMessage(String message, Session session) {
for (Session s : sessions) {
if (s.isOpen()) {
try {
s.getBasicRemote().sendObject(message);
} catch (IOException | EncodeException e) {
e.printStackTrace();
}
}
}
}
@OnClose
public void onClose(Session session) {
sessions.remove(session);
}
@OnError
public void onError(Session session, Throwable throwable) {
System.out.println("Chat Error: " + throwable.getMessage());
}
}
```
在上面的代码中,使用了Java WebSocket API提供的注释和方法来创建一个WebSocket服务器。`@ServerEndpoint`注释指定WebSocket的URI,也就是客户端连接的地址。在`onOpen`方法中,将新打开的会话添加到会话列表中。在`onMessage`方法中,将接收到的消息广播给所有连接到服务器的客户端。在`onClose`方法中,将关闭的会话从会话列表中移除。在`onError`方法中,打印出错误信息。
当客户端连接到服务器时,可以使用如下的JavaScript代码创建WebSocket连接:
```javascript
var ws = new WebSocket("ws://localhost:8080/your_app_context/chat");
```
其中,`your_app_context`是你的应用程序上下文,`chat`是你的WebSocket URI。在发送消息时,可以使用如下的代码:
```javascript
ws.send("Hello, World!");
```
这样,所有连接到服务器的客户端都会收到消息。当客户端关闭连接时,可以使用如下的代码:
```javascript
ws.close();
```
希望这些信息和代码能够对你有所帮助!