您的位置:首页 > Web前端 > HTML5

websocket java服务端、html5客户端以及java客户端

2017-01-19 16:02 615 查看
摘要: @ServerEndpoint @ClientEndpoint

java服务端

@ServerEndpoint(value = "/WebSocket/{路径参数1}/{路径参数2}")
public class HdActWebSocket {

/**
*
* 方法说明 websocket连接建立成功调用的方法
*
* @param 路径参数1
*
* @param 路径参数2
*
* @param session
*            连接会话实例
*
*/
@OnOpen
public void onOpen(@PathParam(value = "路径参数1") String 路径参数1, @PathParam(value = "路径参数2") String 路径参数2, Session session) {
System.out.println("来自" + source + "的用户:" + openId + "建立连接!会话Id为:" + session.getId());
//保存参数到会话
session.getUserProperties().put("路径参数1", 路径参数1);
session.getUserProperties().put("路径参数2", 路径参数2);
}

/**
*
* 方法说明 websocket连接关闭调用的方法
*
* @param session
*            连接会话实例
*
*/
@OnClose
public void onClose(Session session) {

}

/**
*
* 方法说明 websocket连接收到消息调用的方法
*
* @param message
*            消息
* @param session
*            会话实例
*
*/
@OnMessage
public void onMessage(String message, Session session) {
System.out.println("收到消息:" + message);
}

/**
*
* 方法说明 websocket连接发生错误调用的方法
*
* @param session
* @param error
*/
@OnError
public void onError(Session session, Throwable error) {
System.out.println(session.getId() + "客户端发生错误");
error.printStackTrace();
}
/**
*
* 方法说明 服务器间消息转发服务
*
* @param message
* @throws IOException
* @throws DeploymentException
*/
public void serverForward(String message) throws IOException, DeploymentException{
String url = "ws://" + 地址 ;
Session clientSession = null;
// 1.通过java客户端建立与服务器间socket连接
clientSession = ContainerProvider.getWebSocketContainer().connectToServer(WebSocketClient.class, URI.create(url));
// 2.发送消息
clientSession.getBasicRemote().sendText(message);
// 2.关闭socket连接
clientSession.close();
}
}


html5客户端

进行浏览器与服务器间websocket会话

function websocketConnect(){
//判断当前浏览器是否支持WebSocket
if('WebSocket' in window){
WebSocket = new WebSocket("ws://"+domainName+"/WebSocket/路径参数1/路径参数2");
}
else{
alert('Not support websocket')
}

//连接发生错误的回调方法
WebSocket.onerror = function(){
console.log('error');
};

//连接成功建立的回调方法
WebSocket.onopen = function(event){
console.log('链接上');
WebSocket.send('hello');
}

//接收到消息的回调方法
WebSocket.onmessage = function(event){
var data = event.data;
console.log(data);
}

//连接关闭的回调方法
WebSocket.onclose = function(){
console.log('关闭了');
}
}


java客户端

进行java客户端(也可看作服务器)与服务器间websocket会话

@ClientEndpoint
public class WebSocketClient {
public WebSocketClient() {
super();
}

@OnOpen
public void onOpen(Session session) {
System.out.println("建立服务器间websocket连接:" + session.getId());
}

@OnMessage
public void onMessage(String message, Session session) {
System.out.println("服务器间websocket连接:" + session.getId() + "收到消息:" + message);
}

@OnError
public void onError(Throwable t, Session session) {
System.out.println("服务器间websocket连接:" + session.getId() + "出错");
t.printStackTrace();
}
@OnClose
public void onClose( Session session) {
System.out.println("服务器间websocket连接:" + session.getId() + "关闭了");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: