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

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() + "关闭了");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值