java封装网页安卓_安卓websocket 封装基于Java-websocket(示例代码)

public abstract class MyWebSocketService extends Service implementsIWebSocket {private static final String TAG = MyWebSocketService.class.getSimpleName();private ServiceBinder binder = newServiceBinder();private int connectStatus = 0;privateWebSocketThread webSocketThread;privateWebSocketClient client;

@Nullable

@OverridepublicIBinder onBind(Intent intent) {

Log.i(TAG,"onBind: ");if (binder == null){

binder= newMyWebSocketService.ServiceBinder();

}returnbinder;

}public class ServiceBinder extendsBinder {publicMyWebSocketService getService() {return MyWebSocketService.this;

}

}

@Overridepublic voidonCreate() {super.onCreate();

Log.i(TAG,"onCreate: ");//连接

webSocketThread = newMyWebSocketService.WebSocketThread();

webSocketThread.start();

}private class WebSocketThread extendsThread {

@Overridepublic voidrun() {

Log.i(TAG,"run: ");

setupWebSocket();

}

}protected voidsetupWebSocket(){

Log.i(TAG,"setupWebSocket: ");if (connectStatus != 0) return;

connectStatus= 1;try{

client= new WebSocketClient(URI.create(getConnectUrl()), newDraft_10()) {

@Overridepublic voidonOpen(ServerHandshake handshakedata) {

connectStatus= 2;

}

@Overridepublic voidonMessage(String message) {

Log.i(TAG,"onMessage: " +message);//消息分发

dispatchResponse(message);

}

@Overridepublic void onClose(int code, String reason, booleanremote) {

Log.e(TAG,"onClose: " + code +reason);

connectStatus= 0;//EventBus 通知

}

@Overridepublic voidonError(Exception ex) {

Log.e(TAG,"onError: " +ex.getMessage());

connectStatus= 0;//EventBus 通知

}

};

client.connect();

}catch(Exception e){

e.printStackTrace();

}

}

@Overridepublic voidonDestroy() {super.onDestroy();

Log.i(TAG,"onDestroy: ");

}

@Overridepublic voidsendText(String text) {

Log.i(TAG,"sendText From Four Activity : " +text);if (TextUtils.isEmpty(text)) return;if (client != null && connectStatus == 2){

client.send(text);

}

}

@Overridepublic intgetConnectStatus() {returnconnectStatus;

}

@Overridepublic voidreconnect() {

Log.i(TAG,"reconnect: ");new Thread(newRunnable() {

@Overridepublic voidrun() {try{

Thread.sleep(200);

}catch(InterruptedException e) {

e.printStackTrace();

}if (webSocketThread != null &&webSocketThread.isAlive()){

connectStatus= 0;

webSocketThread= newWebSocketThread();

webSocketThread.start();

}else{

Log.e(TAG,"run: reconnect action is Failed ");

}

}

}).start();

}

@Overridepublic voidstop() {

Log.i(TAG,"stop: ");

client.close();

connectStatus= 0;

}/*** 获取服务器地址

*@return

*/

protected abstractString getConnectUrl();/*** 分发响应数据*/

protected abstract voiddispatchResponse(String textResponse);

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值