|
@@ -1,6 +1,7 @@
|
|
|
package com.wdkl.nursewatch.utils;
|
|
|
|
|
|
import android.support.annotation.Nullable;
|
|
|
+import android.util.Log;
|
|
|
|
|
|
import com.google.gson.Gson;
|
|
|
import com.google.gson.GsonBuilder;
|
|
@@ -24,16 +25,18 @@ import okio.ByteString;
|
|
|
|
|
|
public class WebsocketUtil {
|
|
|
|
|
|
+
|
|
|
+ private String TAG = WebsocketUtil.class.getSimpleName();
|
|
|
+
|
|
|
public static String serverUrl = "ws://id.wdklian.com:10011/call";
|
|
|
//public static String serverUrl = "ws://192.168.3.88:10011/call";//吴总做测试 20190417
|
|
|
|
|
|
-
|
|
|
- public static int WEBSOCKET_SUCCESS = 0;
|
|
|
- public static int WEBSOCKET_ONOPEN = 1;
|
|
|
- public static int WEBSOCKET_ONCLOSING = 2;
|
|
|
- public static int WEBSOCKET_ONCLOSED = 3;
|
|
|
- public static int WEBSOCKET_ONFAILURE = 4;
|
|
|
- public static int WEBSOCKET_STATE = -1;
|
|
|
+ public static int WEBSOCKET_SUCCESS = 0; //连接成功
|
|
|
+ public static int WEBSOCKET_ONOPEN = 1; //通道开放
|
|
|
+ public static int WEBSOCKET_ONCLOSING = 2; //正在关闭
|
|
|
+ public static int WEBSOCKET_ONCLOSED = 3; //通道关闭
|
|
|
+ public static int WEBSOCKET_ONFAILURE = 4; //连接失败
|
|
|
+ public static int WEBSOCKET_STATE = -1; //连接状态
|
|
|
|
|
|
public OkHttpClient client;
|
|
|
public WebSocket webSocket;
|
|
@@ -70,7 +73,7 @@ public class WebsocketUtil {
|
|
|
}
|
|
|
|
|
|
public void connect(String machineID, String nurseID) {
|
|
|
- LogUtil.d("connect", "machineID==" + machineID + "==nurseID==" + nurseID);
|
|
|
+ LogUtil.d(TAG, "connect machineID==" + machineID + "==nurseID==" + nurseID);
|
|
|
if (!StringUtils.notEmpty(machineID)) return;
|
|
|
WebsocketEntity websocketEntity = new WebsocketEntity();
|
|
|
websocketEntity.setMachineID(machineID);
|
|
@@ -117,7 +120,7 @@ public class WebsocketUtil {
|
|
|
|
|
|
@Override
|
|
|
public void onOpen(WebSocket webSocket, Response response) {
|
|
|
- LogUtil.d("WebSocketListener", "onOpen==0");
|
|
|
+ LogUtil.d(TAG, "onOpen==0");
|
|
|
WEBSOCKET_STATE = WEBSOCKET_ONOPEN;
|
|
|
EventBus.getDefault().post(new MessageEvent("onOpen", Constants.EVENT_LOGIN_STATUS_MESSAGE));
|
|
|
sendMessageForWS();
|
|
@@ -125,18 +128,20 @@ public class WebsocketUtil {
|
|
|
|
|
|
@Override
|
|
|
public void onMessage(WebSocket webSocket, String text) {//收到文本信息
|
|
|
- LogUtil.d("WebSocketListener", "onMessage==1" + "text==" + text);
|
|
|
+ LogUtil.d(TAG, "onMessage==1" + "text==" + text);
|
|
|
WEBSOCKET_STATE = WEBSOCKET_SUCCESS;
|
|
|
// 0:索引 1:主机id 2:门口机id 3:子机id 4:sip地址 5:房间号 6:床号 7:护理等级 8:消息类型 9:名称
|
|
|
if ("Hello!".equals(text)) {
|
|
|
EventBus.getDefault().post(new MessageEvent("success", Constants.EVENT_LOGIN_STATUS_MESSAGE));
|
|
|
} else if (text.equals("{\"type\":\"ping\"}")) {
|
|
|
- LogUtil.d("WebSocketListener", "服务端收到心跳信号,返回来了");
|
|
|
+ LogUtil.d(TAG, "onMessage 服务端收到心跳信号,返回来了");
|
|
|
} else {
|
|
|
+ Log.e(TAG,"onMessage..."+text);
|
|
|
+
|
|
|
if (Constants.IS_LOGOUT) return;
|
|
|
WebsocketEntityReal websocketEntityReal = gson.fromJson(text, WebsocketEntityReal.class);
|
|
|
text = websocketEntityReal.getUDPData();
|
|
|
- if (!text.equals("") && "$".equals(text.substring(0, 1))) {//判断是否为美元符号开头,如果是则是android 端的命令
|
|
|
+ if (!text.equals("") && "$".equals(text.substring(0, 1))) { //判断是否为美元符号开头,如果是则是android 端的命令
|
|
|
text = delHeadAndEnd(text, "$", "#");
|
|
|
String[] data = text.split("\\|");
|
|
|
|
|
@@ -149,13 +154,13 @@ public class WebsocketUtil {
|
|
|
@Override
|
|
|
public void onMessage(WebSocket webSocket, ByteString bytes) {//收到二进制信息
|
|
|
WEBSOCKET_STATE = WEBSOCKET_SUCCESS;
|
|
|
- LogUtil.d("WebSocketListener", "onMessage==2");
|
|
|
+ LogUtil.d(TAG, "onMessage==2");
|
|
|
if (Constants.IS_LOGOUT) return;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onClosing(WebSocket webSocket, int code, String reason) {
|
|
|
- LogUtil.d("WebSocketListener", "onClosing==3");
|
|
|
+ LogUtil.d(TAG, "onClosing==3");
|
|
|
WEBSOCKET_STATE = WEBSOCKET_ONCLOSING;
|
|
|
webSocket.close(NORMAL_CLOSURE_STATUS, reason);
|
|
|
connectWS();
|
|
@@ -164,7 +169,7 @@ public class WebsocketUtil {
|
|
|
|
|
|
@Override
|
|
|
public void onClosed(WebSocket webSocket, int code, String reason) {
|
|
|
- LogUtil.d("WebSocketListener", "onClosed==303");
|
|
|
+ LogUtil.d(TAG, "onClosed==303");
|
|
|
WEBSOCKET_STATE = WEBSOCKET_ONCLOSED;
|
|
|
connectWS();
|
|
|
EventBus.getDefault().post(new MessageEvent("onClosed", Constants.EVENT_LOGIN_STATUS_MESSAGE));
|
|
@@ -172,7 +177,7 @@ public class WebsocketUtil {
|
|
|
|
|
|
@Override
|
|
|
public void onFailure(WebSocket webSocket, Throwable t, @Nullable Response response) {
|
|
|
- LogUtil.d("WebSocketListener", "onFailure==4");
|
|
|
+ LogUtil.d(TAG, "onFailure==4");
|
|
|
WEBSOCKET_STATE = WEBSOCKET_ONFAILURE;
|
|
|
connectWS();
|
|
|
EventBus.getDefault().post(new MessageEvent("onFailure", Constants.EVENT_LOGIN_STATUS_MESSAGE));
|
|
@@ -186,9 +191,9 @@ public class WebsocketUtil {
|
|
|
try {
|
|
|
//String sendMessage = "{\"UDPData\":\"\",\"MachineID\":" + "\"" + websocketEntity.getMachineID() + "\"" + ",\"DeviceType\":\"2\"}";
|
|
|
String sendMessage = new Gson().toJson(websocketEntity);
|
|
|
- LogUtil.d("sendMessageForWS", "sendMessage==" + sendMessage);
|
|
|
+ LogUtil.d(TAG, "sendMessage==" + sendMessage);
|
|
|
WebsocketUtil.getInstance().getWebSocket().send(sendMessage);
|
|
|
- LogUtil.d("sendMessageForWS", "2_send_ok");
|
|
|
+ LogUtil.d(TAG, "2_send_ok");
|
|
|
} catch (Exception e) {
|
|
|
}
|
|
|
}
|
|
@@ -203,9 +208,9 @@ public class WebsocketUtil {
|
|
|
}
|
|
|
|
|
|
public synchronized void onMessageCall(String text, String[] data) {
|
|
|
- LogUtil.d("onMessageCall", data.toString());
|
|
|
+ LogUtil.d(TAG, data.toString());
|
|
|
if (!Constants.UDP_WS_DATA.equals(text)) {
|
|
|
- LogUtil.d("onMessageCall", "onMessageCall222");
|
|
|
+ LogUtil.d(TAG, "onMessageCall222");
|
|
|
Constants.UDP_WS_DATA = text;
|
|
|
MessageEntity messageEntity = new MessageEntity();
|
|
|
if (data[8].equals(Constants.SON_CALL)) {//床头机呼叫
|
|
@@ -292,7 +297,7 @@ public class WebsocketUtil {
|
|
|
source = source.substring(0, source.length() - 1);
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
- LogUtil.d("delHeadAndEnd", "Exception");
|
|
|
+ LogUtil.d("delHeadAndEnd", "delHeadAndEnd Exception");
|
|
|
}
|
|
|
|
|
|
return source;
|