package com.iplatform.tcp;
|
|
import com.walker.infrastructure.utils.JsonUtils;
|
import org.java_websocket.client.WebSocketClient;
|
import org.java_websocket.handshake.ServerHandshake;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
|
import java.net.URI;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
public class DemoWebsocketClient extends WebSocketClient {
|
|
protected final transient Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
public DemoWebsocketClient(URI serverUri) {
|
super(serverUri);
|
}
|
|
@Override
|
public void onOpen(ServerHandshake serverHandshake) {
|
// logger.info("ws 连接成功");
|
String data = null;
|
Map<String, String> map = new HashMap<>(4);
|
map.put("protocol", "login");
|
map.put("uid", this.uid);
|
try {
|
data = JsonUtils.objectToJsonString(map);
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
this.send(data);
|
logger.info("客户端发送登录请求,name = {}", this.uid);
|
}
|
|
@Override
|
public void onMessage(String s) {
|
if(s.indexOf("heartbeat") >= 0){
|
return;
|
}
|
logger.info("ws 收到消息:{}", s);
|
try {
|
DemoLoginResponse response = JsonUtils.jsonStringToObject(s, DemoLoginResponse.class);
|
if(response.getProtocol().equals("login")){
|
logger.info("websocket 登录成功:{}", response.getUid());
|
}
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
}
|
|
@Override
|
public void onClose(int i, String s, boolean b) {
|
logger.warn("连接被关闭:code={}, reason={}, remote={}", i, s, b);
|
}
|
|
@Override
|
public void onError(Exception e) {
|
logger.error("连接错误:" + e.getMessage(), e);
|
}
|
|
public String getUid() {
|
return uid;
|
}
|
|
public void setUid(String uid) {
|
this.uid = uid;
|
}
|
|
public String getUserName() {
|
return userName;
|
}
|
|
public void setUserName(String userName) {
|
this.userName = userName;
|
}
|
|
private String uid;
|
private String userName;
|
}
|