|
@@ -14,6 +14,7 @@ import java.math.BigDecimal;
|
|
|
import java.net.URI;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.UUID;
|
|
|
|
|
|
public class WsClient extends WebSocketClient {
|
|
|
|
|
@@ -48,32 +49,70 @@ public class WsClient extends WebSocketClient {
|
|
|
|
|
|
@Override
|
|
|
public void onClose(int arg0, String arg1, boolean arg2) {
|
|
|
- if(arg0==1006||arg0==1001){
|
|
|
- Thread thread=new Thread(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- try {
|
|
|
- boolean b = false ;
|
|
|
- while(!b){
|
|
|
- try {
|
|
|
- String url = PropertiesUtil.getProperty("ws.url");
|
|
|
- WsClient myClient = new WsClient(new URI(url));
|
|
|
- myClient.connect();
|
|
|
- Thread.sleep(5000);
|
|
|
- if(myClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
|
|
|
- b = true;
|
|
|
- System.out.println("订阅成功555");
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
+// if(arg0==1006||arg0==1001){
|
|
|
+// Thread thread=new Thread(new Runnable() {
|
|
|
+// @Override
|
|
|
+// public void run() {
|
|
|
+// try {
|
|
|
+// boolean b = false ;
|
|
|
+// while(!b){
|
|
|
+// try {
|
|
|
+// String url = PropertiesUtil.getProperty("ws.url");
|
|
|
+// WsClient myClient = new WsClient(new URI(url));
|
|
|
+// myClient.connect();
|
|
|
+// Thread.sleep(5000);
|
|
|
+// if(myClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
|
|
|
+// b = true;
|
|
|
+// System.out.println("订阅成功555");
|
|
|
+// }
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }catch (Exception e){
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+// }
|
|
|
+// });
|
|
|
+// thread.start();
|
|
|
+// }
|
|
|
+ }
|
|
|
+
|
|
|
+ static String sping = "1" ;
|
|
|
+ static boolean is = false;
|
|
|
+ public void sendWsPing(){
|
|
|
+ sping = UUID.randomUUID().toString().replace("-","");
|
|
|
+ is = false;
|
|
|
+ if(!instance.getReadyState().equals(WebSocket.READYSTATE.OPEN)){ // 如果客户端检测到 不在线那么主动连接
|
|
|
+ try {
|
|
|
+ String url = PropertiesUtil.getProperty("ws.url");
|
|
|
+ WsClient myClient = new WsClient(new URI(url));
|
|
|
+ myClient.connect();
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ instance.send("ping:"+sping);
|
|
|
+ //5秒内还没返回 或返回的不是传过去的ping 则 重连一次
|
|
|
+ int i = 0 ;
|
|
|
+ while(!is){
|
|
|
+ try {
|
|
|
+ i++;
|
|
|
+ Thread.sleep(1000);
|
|
|
+ if(i==5){
|
|
|
+ String url = PropertiesUtil.getProperty("ws.url");
|
|
|
+ WsClient myClient = new WsClient(new URI(url));
|
|
|
+ myClient.connect();
|
|
|
+ if(myClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
|
|
|
+ is = true;
|
|
|
+ System.out.println("订阅成功555");
|
|
|
}
|
|
|
- }catch (Exception e){
|
|
|
- e.printStackTrace();
|
|
|
+ break;
|
|
|
}
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
- });
|
|
|
- thread.start();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -95,36 +134,40 @@ public class WsClient extends WebSocketClient {
|
|
|
if(StringUtils.isNotBlank(arg0)){
|
|
|
if(arg0.contains("testws")){
|
|
|
System.out.println(arg0);
|
|
|
+ }else if(arg0.equals("pong:"+sping)) {
|
|
|
+ is = true ;
|
|
|
+ }else {
|
|
|
+ // 存储信息至redis
|
|
|
+ JSONObject parse = (JSONObject) JSONObject.parse(arg0);
|
|
|
+ StockVO stockVO = new StockVO();
|
|
|
+ stockVO.setId(parse.getInteger("id"));
|
|
|
+ stockVO.setName(parse.getString("name"));
|
|
|
+ stockVO.setCode(parse.getString("code"));
|
|
|
+ stockVO.setSpell(parse.getString("spell"));
|
|
|
+ stockVO.setGid(parse.getString("gid")+"_bb");
|
|
|
+ stockVO.setNowPrice(parse.get("nowPrice")+"");
|
|
|
+ stockVO.setHcrate(new BigDecimal(parse.get("hcrate")+""));
|
|
|
+ stockVO.setToday_max(parse.get("today_max")+"");
|
|
|
+ stockVO.setToday_min(parse.get("today_min")+"");
|
|
|
+ stockVO.setBusiness_balance(parse.get("business_balance")+"");
|
|
|
+ stockVO.setBusiness_amount(parse.get("business_amount")+"");
|
|
|
+ stockVO.setPreclose_px(parse.get("preclose")+"");
|
|
|
+ stockVO.setOpen_px(parse.get("open")+"");
|
|
|
+ stockVO.setTransState(parse.getInteger("transState"));
|
|
|
+ stockVO.setDepositAmt(parse.getInteger("depositAmt"));
|
|
|
+ stockVO.setMinImg(parse.getString("minImg"));
|
|
|
+ stockVO.setDayImg(parse.getString("dayImg"));
|
|
|
+ stockVO.setWeekImg(parse.getString("weekImg"));
|
|
|
+ stockVO.setMonthImg(parse.getString("monthImg"));
|
|
|
+ stockVO.setChange(parse.get("change")+"");
|
|
|
+ List<StockVO> stockVOList = new ArrayList<>();
|
|
|
+ stockVOList.add(stockVO);
|
|
|
+ initStockListServiceBiz.updateListInfo(stockVOList);
|
|
|
+ initStockListServiceBiz.updateInfo(stockVO);
|
|
|
+ // 处理数据 并 推送给 客户
|
|
|
+// new WebSocketController().sendSysMsg("all",arg0);
|
|
|
}
|
|
|
- // 存储信息至redis
|
|
|
- JSONObject parse = (JSONObject) JSONObject.parse(arg0);
|
|
|
- StockVO stockVO = new StockVO();
|
|
|
- stockVO.setId(parse.getInteger("id"));
|
|
|
- stockVO.setName(parse.getString("name"));
|
|
|
- stockVO.setCode(parse.getString("code"));
|
|
|
- stockVO.setSpell(parse.getString("spell"));
|
|
|
- stockVO.setGid(parse.getString("gid")+"_bb");
|
|
|
- stockVO.setNowPrice(parse.get("nowPrice")+"");
|
|
|
- stockVO.setHcrate(new BigDecimal(parse.get("hcrate")+""));
|
|
|
- stockVO.setToday_max(parse.get("today_max")+"");
|
|
|
- stockVO.setToday_min(parse.get("today_min")+"");
|
|
|
- stockVO.setBusiness_balance(parse.get("business_balance")+"");
|
|
|
- stockVO.setBusiness_amount(parse.get("business_amount")+"");
|
|
|
- stockVO.setPreclose_px(parse.get("preclose")+"");
|
|
|
- stockVO.setOpen_px(parse.get("open")+"");
|
|
|
- stockVO.setTransState(parse.getInteger("transState"));
|
|
|
- stockVO.setDepositAmt(parse.getInteger("depositAmt"));
|
|
|
- stockVO.setMinImg(parse.getString("minImg"));
|
|
|
- stockVO.setDayImg(parse.getString("dayImg"));
|
|
|
- stockVO.setWeekImg(parse.getString("weekImg"));
|
|
|
- stockVO.setMonthImg(parse.getString("monthImg"));
|
|
|
- stockVO.setChange(parse.get("change")+"");
|
|
|
- List<StockVO> stockVOList = new ArrayList<>();
|
|
|
- stockVOList.add(stockVO);
|
|
|
- initStockListServiceBiz.updateListInfo(stockVOList);
|
|
|
- initStockListServiceBiz.updateInfo(stockVO);
|
|
|
- // 处理数据 并 推送给 客户
|
|
|
- new WebSocketController().sendSysMsg("all",arg0);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}catch (Exception e){
|