WebSocket是HTML5规定的新协议。它允许服务端向客户端实时推送新消息;当然,客户端也可以通过websocket实时向server发消息。
应用场景:聊天。user1向user2发消息,用服务器中转,那么server就要向client实时推送。
@javax.websocket.server. ServerEndpoint
该注解作用在类上,注解的value参数指定了建立连接的URL路径。
//以该注解为例,那么真实地址就是ws://host:port/project/websocket/chat
@ServerEndpoint(value = "/websocket/chat")
@javax.websocket. OnOpen
作用在函数上,注入参数javax.websocket.Session。
@javax.websocket. OnClose
作用在函数上。
@javax.websocket. OnMessage
作用在函数上。注入参数String。
void javax.websocket.RemoteEndpoint.Basic. sendText(String text)
此函数用于发消息。
@javax.websocket. OnError
作用在函数上。注入参数Throwable。异常的时候会调用。
应用场景:聊天。user1向user2发消息,用服务器中转,那么server就要向client实时推送。
1.js部分
//建立连接
var url="ws://yichudu.com/yichuMessage/websocket/chat";
var webSocket = new WebSocket(url);
//绑定事件
webSocket.onopen=function(){/*建立连接后的操作*/}
webSocket.onmessage = function(event) {/*收到信息后的操作*/}
webSocket.onclose = function() {/*断开连接后的操作*/}
//发送消息,以json为例
webSocket.send(JSON.stringify(msg));
2.server部分
需要tomcat支持,以tomcat8为例。用eclipse建立一个Dynamic Web Project。@javax.websocket.server. ServerEndpoint
该注解作用在类上,注解的value参数指定了建立连接的URL路径。
//以该注解为例,那么真实地址就是ws://host:port/project/websocket/chat
@ServerEndpoint(value = "/websocket/chat")
@javax.websocket. OnOpen
作用在函数上,注入参数javax.websocket.Session。
@javax.websocket. OnClose
作用在函数上。
@javax.websocket. OnMessage
作用在函数上。注入参数String。
void javax.websocket.RemoteEndpoint.Basic. sendText(String text)
此函数用于发消息。
@javax.websocket. OnError
作用在函数上。注入参数Throwable。异常的时候会调用。