个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~
消息推送的常见方式
:
Content-Type: text/event-stream
类型的数据流消息;ws://example.com/socket
)来指定连接的目标。open
、message
、close
和 error
。其中,open
事件表示连接已经建立,message
事件用于接收服务器发送的消息。send
方法实现。close
方法来关闭连接。在浏览器中,JavaScript提供了WebSocket API,它使开发人员能够创建WebSocket连接、发送和接收消息。基本的WebSocket客户端API包括以下几个主要接口和方法:
WebSocket
: 这是WebSocket的主要接口,用于创建WebSocket实例。onopen
: 当连接建立时触发的事件处理程序。onmessage
: 当接收到消息时触发的事件处理程序。send(data)
: 用于将数据发送到服务器。onclose
: 当连接关闭时触发的事件处理程序。onerror
: 当发生错误时触发的事件处理程序。JS代码示例
:
let socket = new WebSocket('ws://localhost/websocket');
socket.onopen = function(event) {
console.log('WebSocket connection opened:', event);
socket.send('Hello, server!');
};
socket.onmessage = function(event) {
console.log('Message from server:', event.data);
};
socket.onclose = function(event) {
console.log('WebSocket connection closed:', event);
};
socket.onerror = function(event) {
console.error('WebSocket error:', event);
};
Tomcat的7.0.5版本开始支持WebSocket,并且实现了Java WebSocket规范。
Java WebSocket 应用由一系列的Endpoint
组成。Endpoint
是一个java对象,代表WebSocket链接的一端,对于服务端,我
们可以视为处理具体WebSocket消息的接口。
我们可以通过两种方式定义Endpoint:
承类javax.websocket.Endpoint并实现其方法
。添加@ServerEndpoint相关注解
。Endpoint实例在WebSocket握手时创建,并在客户端与服务端链接过程中有效,最后在链接关闭时结束。在Endpoint接口中明
确定义了与其生命周期相关的方法 ,规范实现者确保生命周期的各个阶段调用实例的相关方法。生命周期方法如下:
javax.websocket
创建WebSocket服务器的基本示例:import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/3b8b4d905ddb42a48406a7269b1f48d6.png)
@ServerEndpoint("/websocket")
@Component
public class MyWebSocketServer {
@OnOpen
public void onOpen(Session session) {
System.out.println("WebSocket connection opened: " + session.getId());
}
@OnMessage
public void onMessage(String message, Session session) {
System.out.println("Message from client: " + message);
session.getAsyncRemote().sendText("Hello, client!");
}
@OnClose
public void onClose(Session session) {
System.out.println("WebSocket connection closed: " + session.getId());
}
}