Commit 9a0d88c0a7d3d23aff6e64d8c3241ff061231040

Authored by 李攀
1 parent 5128ec28

code colear

@@ -12,6 +12,7 @@ import com.gimi.common.cinema.model.RoomInfo; @@ -12,6 +12,7 @@ import com.gimi.common.cinema.model.RoomInfo;
12 import com.gimi.common.cinema.utils.ActivityCollector; 12 import com.gimi.common.cinema.utils.ActivityCollector;
13 import com.gimi.common.cinema.utils.CToast; 13 import com.gimi.common.cinema.utils.CToast;
14 import com.gimi.common.cinema.utils.LogUtils; 14 import com.gimi.common.cinema.utils.LogUtils;
  15 +import com.gimi.common.cinema.utils.NetStatusUtils;
15 import com.gimi.common.cinema.utils.SystemUtils; 16 import com.gimi.common.cinema.utils.SystemUtils;
16 import com.gimi.common.cinema.utils.Utils; 17 import com.gimi.common.cinema.utils.Utils;
17 import com.google.gson.Gson; 18 import com.google.gson.Gson;
@@ -29,6 +30,7 @@ import org.greenrobot.eventbus.EventBus; @@ -29,6 +30,7 @@ import org.greenrobot.eventbus.EventBus;
29 30
30 import java.io.IOException; 31 import java.io.IOException;
31 import java.io.InputStream; 32 import java.io.InputStream;
  33 +import java.io.InterruptedIOException;
32 import java.io.OutputStream; 34 import java.io.OutputStream;
33 import java.net.Socket; 35 import java.net.Socket;
34 import java.util.Arrays; 36 import java.util.Arrays;
@@ -109,21 +111,15 @@ public class SocketService1 extends BaseService { @@ -109,21 +111,15 @@ public class SocketService1 extends BaseService {
109 AtomicBoolean sendRegister = new AtomicBoolean(false); 111 AtomicBoolean sendRegister = new AtomicBoolean(false);
110 112
111 private Runnable heartBeatRunnable = new Runnable() { 113 private Runnable heartBeatRunnable = new Runnable() {
112 - private static final String TAG = "HeartBeatThread";  
113 -  
114 @Override 114 @Override
115 public void run() { 115 public void run() {
116 mHandler.postDelayed(this, HEART_BEAT_RATE); 116 mHandler.postDelayed(this, HEART_BEAT_RATE);
117 - LogUtils.d(TAG, "heart beat");  
118 //就发送一个HEART_BEAT_STRING过去 如果发送失败,就重新初始化一个socket 117 //就发送一个HEART_BEAT_STRING过去 如果发送失败,就重新初始化一个socket
119 final String s = new Gson().toJson( 118 final String s = new Gson().toJson(
120 new SocketSendMsg().contractHeartBeatMsg(testRoomSn)); 119 new SocketSendMsg().contractHeartBeatMsg(testRoomSn));
121 - LogUtils.d(TAG, "heart beat get s");  
122 boolean isSuccess = sendMsg(s + END_SYMBOL); 120 boolean isSuccess = sendMsg(s + END_SYMBOL);
123 if (!isSuccess) { 121 if (!isSuccess) {
124 - LogUtils.d(TAG, "heart beat error restart");  
125 -// clearConnect();  
126 -// new InitSocketThread().start(); 122 + LogUtils.d(TAG, "send heart beat error restart");
127 } 123 }
128 } 124 }
129 }; 125 };
@@ -153,8 +149,6 @@ public class SocketService1 extends BaseService { @@ -153,8 +149,6 @@ public class SocketService1 extends BaseService {
153 @Override 149 @Override
154 public void onCreate() { 150 public void onCreate() {
155 super.onCreate(); 151 super.onCreate();
156 -// gson = new Gson();  
157 -// context = this;  
158 LogUtils.d(TAG, "onCreate"); 152 LogUtils.d(TAG, "onCreate");
159 } 153 }
160 154
@@ -197,22 +191,22 @@ public class SocketService1 extends BaseService { @@ -197,22 +191,22 @@ public class SocketService1 extends BaseService {
197 e.printStackTrace(); 191 e.printStackTrace();
198 return super.onStartCommand(intent, flags, startId); 192 return super.onStartCommand(intent, flags, startId);
199 } 193 }
200 -  
201 -// LogUtils.d(TAG, "socket service onCreate");  
202 new InitSocketThread().start(); 194 new InitSocketThread().start();
203 new ReadThread().start(); 195 new ReadThread().start();
204 - mHandler.post(heartBeatRunnable);  
205 -  
206 return START_STICKY; 196 return START_STICKY;
207 } 197 }
208 198
209 ///begin socket operation 199 ///begin socket operation
210 private synchronized void initSocket() throws IOException {//初始化Socket 200 private synchronized void initSocket() throws IOException {//初始化Socket
211 - LogUtils.d(TAG, "initSocket!!" + i);  
212 if (socket != null && socket.isConnected()) { 201 if (socket != null && socket.isConnected()) {
213 return; 202 return;
214 } 203 }
215 - LogUtils.d(TAG, "serverHost:serverPort:" + serverHost + ":" + serverPort); 204 + boolean networkConnected = NetStatusUtils.isNetworkConnected(context);
  205 + boolean availableByPing = NetStatusUtils.isAvailableByPing("www.baidu.com");
  206 + boolean availableByPing1 = NetStatusUtils.isAvailableByPing(serverHost);
  207 + boolean availableByPing2 = NetStatusUtils.isAvailableByPing("192.168.200.241");
  208 + LogUtils.d(TAG, "initsocket serverHost:serverPort:" + serverHost + ":" + serverPort);
  209 + LogUtils.d(TAG, "networkConnected:" + networkConnected + ":baidu:" + availableByPing + ",serverHost:" + availableByPing1 + ",serverIp:" + availableByPing2);
216 mHandler.post(new Runnable() { 210 mHandler.post(new Runnable() {
217 @Override 211 @Override
218 public void run() { 212 public void run() {
@@ -220,22 +214,20 @@ public class SocketService1 extends BaseService { @@ -220,22 +214,20 @@ public class SocketService1 extends BaseService {
220 } 214 }
221 }); 215 });
222 socket = new Socket(serverHost, serverPort); 216 socket = new Socket(serverHost, serverPort);
  217 + socket.setSoTimeout(100);
223 readingMsg.setLength(0); 218 readingMsg.setLength(0);
224 - LogUtils.d(TAG, "initSocket!!" + i++);  
225 } 219 }
226 220
227 221
228 - int i = 0;  
229 -  
230 private synchronized boolean sendMsg(String msg) { 222 private synchronized boolean sendMsg(String msg) {
231 - LogUtils.d(TAG, "send msg start**:" + i);  
232 if (socket == null || !socket.isConnected()) { 223 if (socket == null || !socket.isConnected()) {
233 - LogUtils.d(TAG, "send msg end**" + i++);  
234 return false; 224 return false;
235 } 225 }
236 -// if (!msg.contains("20025")) {  
237 - LogUtils.d(TAG, "send msg:" + msg);  
238 -// } 226 + if (!msg.contains("20025")) {
  227 + LogUtils.d(TAG, "send msg:" + msg);
  228 + } else {
  229 + LogUtils.d(TAG, "send heart beat msg:" + msg);
  230 + }
239 Socket soc = socket; 231 Socket soc = socket;
240 try { 232 try {
241 if (!soc.isClosed() && !soc.isOutputShutdown()) { 233 if (!soc.isClosed() && !soc.isOutputShutdown()) {
@@ -248,15 +240,13 @@ public class SocketService1 extends BaseService { @@ -248,15 +240,13 @@ public class SocketService1 extends BaseService {
248 } catch (IOException e) { 240 } catch (IOException e) {
249 LogUtils.d(TAG, "error" + e.getMessage()); 241 LogUtils.d(TAG, "error" + e.getMessage());
250 e.printStackTrace(); 242 e.printStackTrace();
251 - releaseLastSocket(); 243 + clearConnect();
252 return false; 244 return false;
253 } 245 }
254 - LogUtils.d(TAG, "send msg end**" + i++);  
255 return true; 246 return true;
256 } 247 }
257 248
258 private synchronized void releaseLastSocket() { 249 private synchronized void releaseLastSocket() {
259 - LogUtils.d(TAG, "releaseLastSocket@@" + i);  
260 try { 250 try {
261 if (null != socket) { 251 if (null != socket) {
262 socket.close(); 252 socket.close();
@@ -265,14 +255,12 @@ public class SocketService1 extends BaseService { @@ -265,14 +255,12 @@ public class SocketService1 extends BaseService {
265 LogUtils.d(TAG, "error" + e.getMessage()); 255 LogUtils.d(TAG, "error" + e.getMessage());
266 e.printStackTrace(); 256 e.printStackTrace();
267 } finally { 257 } finally {
268 - LogUtils.d(TAG, "releaseLastSocket@@" + i);  
269 socket = null; 258 socket = null;
270 readingMsg.setLength(0); 259 readingMsg.setLength(0);
271 } 260 }
272 } 261 }
273 262
274 private synchronized boolean recvMsg(StringBuilder msg) { 263 private synchronized boolean recvMsg(StringBuilder msg) {
275 - LogUtils.d(TAG, "recvMsg##" + i);  
276 if (null == socket || !socket.isConnected()) { 264 if (null == socket || !socket.isConnected()) {
277 return false; 265 return false;
278 } 266 }
@@ -291,89 +279,78 @@ public class SocketService1 extends BaseService { @@ -291,89 +279,78 @@ public class SocketService1 extends BaseService {
291 msg.setLength(0); 279 msg.setLength(0);
292 msg.append(readingMsg.substring(0, pos)); 280 msg.append(readingMsg.substring(0, pos));
293 readingMsg.delete(0, pos + END_SYMBOL.length()); 281 readingMsg.delete(0, pos + END_SYMBOL.length());
294 - LogUtils.d(TAG, "recvMsg##" + i++);  
295 return true; 282 return true;
296 } 283 }
297 } 284 }
  285 + } catch (InterruptedIOException e) {
  286 + return false;
298 } catch (IOException e) { 287 } catch (IOException e) {
299 e.printStackTrace(); 288 e.printStackTrace();
300 - releaseLastSocket();  
301 - LogUtils.d(TAG, "recvMsg false##" + i++); 289 + LogUtils.d(TAG, e.getMessage());
  290 + clearConnect();
302 return false; 291 return false;
303 } 292 }
304 - LogUtils.d(TAG, "recvMsg##" + i++);  
305 return false; 293 return false;
306 } 294 }
307 295
308 private synchronized void clearConnect() { 296 private synchronized void clearConnect() {
309 - LogUtils.d(TAG, "clearConnect$$" + i);  
310 - 297 + LogUtils.d(TAG, "clearConnect");
311 mHandler.removeCallbacks(heartBeatRunnable); 298 mHandler.removeCallbacks(heartBeatRunnable);
312 sendRegister.set(false); 299 sendRegister.set(false);
313 releaseLastSocket(); 300 releaseLastSocket();
314 - LogUtils.d(TAG, "recvMsg$$" + i++);  
315 -  
316 } 301 }
317 ///end socket operation 302 ///end socket operation
318 303
319 class InitSocketThread extends Thread { 304 class InitSocketThread extends Thread {
320 - private static final String TAG = "HeartBeatThread";  
321 -  
322 @Override 305 @Override
323 public void run() { 306 public void run() {
324 - super.run();  
325 - try {  
326 - initSocket();  
327 - } catch (IOException e) {  
328 - e.printStackTrace();  
329 - LogUtils.d(TAG, "init socket thread error,restart again after " + HEART_BEAT_RATE / 1000 + " seconds"); 307 + while (!isInterrupted()) {
  308 + try {
  309 + initSocket();
  310 + } catch (IOException e) {
  311 + e.printStackTrace();
  312 + LogUtils.d(TAG, "init socket thread error,restart again after " + HEART_BEAT_RATE / 1000 + " seconds");
  313 + }
  314 +
330 try { 315 try {
331 - Thread.sleep(HEART_BEAT_RATE); 316 + Thread.sleep(1000);
332 } catch (InterruptedException e1) { 317 } catch (InterruptedException e1) {
333 LogUtils.d(TAG, "error" + e1.getMessage()); 318 LogUtils.d(TAG, "error" + e1.getMessage());
334 e1.printStackTrace(); 319 e1.printStackTrace();
335 } 320 }
336 - this.run();  
337 } 321 }
338 } 322 }
339 } 323 }
340 324
341 // Thread to read content from Socket 325 // Thread to read content from Socket
342 class ReadThread extends Thread { 326 class ReadThread extends Thread {
343 - private final String TAG = "ReadThread";  
344 private long sleepTime = 0; 327 private long sleepTime = 0;
345 328
346 @Override 329 @Override
347 public void run() { 330 public void run() {
348 StringBuilder message = new StringBuilder(); 331 StringBuilder message = new StringBuilder();
349 -  
350 - LogUtils.d(TAG, "begin");  
351 -  
352 while (!isInterrupted()) { 332 while (!isInterrupted()) {
353 - try {  
354 - if (!sendRegister.get()) {  
355 - LogUtils.d(TAG, "send register mes");  
356 - SocketSendMsg ssm = new SocketSendMsg().contractRegisterMsg(testRoomSn);  
357 - String msg = gson.toJson(ssm) + END_SYMBOL;  
358 - if (!sendMsg(msg)) { 333 + if (!sendRegister.get()) {
  334 + LogUtils.d(TAG, "send register mes");
  335 + SocketSendMsg ssm = new SocketSendMsg().contractRegisterMsg(testRoomSn);
  336 + String msg = gson.toJson(ssm) + END_SYMBOL;
  337 + if (!sendMsg(msg)) {
  338 + try {
359 Thread.sleep(READ_THREAD_DEFAULT_SLEEP_MTIME); 339 Thread.sleep(READ_THREAD_DEFAULT_SLEEP_MTIME);
360 - continue; 340 + } catch (InterruptedException e) {
  341 + e.printStackTrace();
361 } 342 }
362 - LogUtils.d(TAG, "" + msg);  
363 - sendRegister.set(true);  
364 - } else {  
365 - LogUtils.d(TAG, "already register"); 343 + continue;
366 } 344 }
367 - } catch (InterruptedException e) {  
368 - continue; 345 + LogUtils.d(TAG, "" + msg);
  346 + sendRegister.set(true);
369 } 347 }
370 348
371 LogUtils.d(TAG, "begin to recv msg"); 349 LogUtils.d(TAG, "begin to recv msg");
372 350
373 sleepTime = READ_THREAD_DEFAULT_SLEEP_MTIME; 351 sleepTime = READ_THREAD_DEFAULT_SLEEP_MTIME;
374 - recvMsgTag:  
375 while (recvMsg(message)) { 352 while (recvMsg(message)) {
376 - sleepTime = sleepTime; 353 + sleepTime = READ_THREAD_DEFAULT_SLEEP_MTIME;
377 354
378 LogUtils.d(TAG, "recv msg:" + message); 355 LogUtils.d(TAG, "recv msg:" + message);
379 SocketResponse socketResponse; 356 SocketResponse socketResponse;
@@ -384,20 +361,18 @@ public class SocketService1 extends BaseService { @@ -384,20 +361,18 @@ public class SocketService1 extends BaseService {
384 LogUtils.e(TAG, "invalid msg:", message + e.getMessage()); 361 LogUtils.e(TAG, "invalid msg:", message + e.getMessage());
385 e.printStackTrace(); 362 e.printStackTrace();
386 clearConnect(); 363 clearConnect();
387 - break recvMsgTag; 364 + break;
388 } 365 }
389 366
390 switch (socketResponse.getCode()) { 367 switch (socketResponse.getCode()) {
391 case SUCCESS_MESSAGE: 368 case SUCCESS_MESSAGE:
392 Log.d(TAG, "SUCCESS_MESSAGE"); 369 Log.d(TAG, "SUCCESS_MESSAGE");
393 break; 370 break;
394 -  
395 case VERIFY_SUCCESS: 371 case VERIFY_SUCCESS:
396 LogUtils.d(TAG, "VERIFY_SUCCESS"); 372 LogUtils.d(TAG, "VERIFY_SUCCESS");
397 mHandler.post(heartBeatRunnable); 373 mHandler.post(heartBeatRunnable);
398 LogUtils.d(TAG, "verify success start heart beat"); 374 LogUtils.d(TAG, "verify success start heart beat");
399 break; 375 break;
400 -  
401 case HEART_BEAT_SUCCESS: 376 case HEART_BEAT_SUCCESS:
402 //每成功5次心跳判定是否启动main activity 377 //每成功5次心跳判定是否启动main activity
403 if (++mainChargeCount == 5) { 378 if (++mainChargeCount == 5) {
@@ -415,18 +390,8 @@ public class SocketService1 extends BaseService { @@ -415,18 +390,8 @@ public class SocketService1 extends BaseService {
415 case ROOM_SN_CONNECTED: 390 case ROOM_SN_CONNECTED:
416 String msg1 = socketResponse.getCode() == HEART_BEAT_ERROR_SYMBOL ? "HEART_BEAT_ERROR_SYMBOL" : "ROOM_SN_CONNECTED"; 391 String msg1 = socketResponse.getCode() == HEART_BEAT_ERROR_SYMBOL ? "HEART_BEAT_ERROR_SYMBOL" : "ROOM_SN_CONNECTED";
417 LogUtils.d(TAG, msg1); 392 LogUtils.d(TAG, msg1);
418 -// clearConnect();  
419 - LogUtils.d(TAG, msg1 + " before:" + +System.currentTimeMillis());  
420 -// try {  
421 -// Thread.sleep(10 * 1000);  
422 -// } catch (InterruptedException e) {  
423 -// e.printStackTrace();  
424 -// }  
425 - sleepTime = 10 * 1000;  
426 - LogUtils.d(TAG, msg1 + " after:" + System.currentTimeMillis());  
427 -// new InitSocketThread().start(); 393 + clearConnect();
428 break; 394 break;
429 -  
430 case RETURN_VERIFY_CODE: 395 case RETURN_VERIFY_CODE:
431 LogUtils.d(TAG, "RETURN_VERIFY_CODE"); 396 LogUtils.d(TAG, "RETURN_VERIFY_CODE");
432 if (!TextUtils.isEmpty(socketResponse.getData().getVerify())) { 397 if (!TextUtils.isEmpty(socketResponse.getData().getVerify())) {
@@ -436,7 +401,6 @@ public class SocketService1 extends BaseService { @@ -436,7 +401,6 @@ public class SocketService1 extends BaseService {
436 sendMsg(msg); 401 sendMsg(msg);
437 } 402 }
438 break; 403 break;
439 -  
440 case CONTAIN_MESSAGE: 404 case CONTAIN_MESSAGE:
441 LogUtils.d(TAG, "CONTAIN_MESSAGE"); 405 LogUtils.d(TAG, "CONTAIN_MESSAGE");
442 if (socketResponse.getData() != null) { 406 if (socketResponse.getData() != null) {
@@ -494,21 +458,18 @@ public class SocketService1 extends BaseService { @@ -494,21 +458,18 @@ public class SocketService1 extends BaseService {
494 } 458 }
495 } 459 }
496 break; 460 break;
497 -  
498 default: 461 default:
499 - LogUtils.d(TAG, "default msg:" + socketResponse.toString()); 462 + clearConnect();
  463 + LogUtils.d(TAG, "default msg clearConnect:" + socketResponse.toString());
500 } 464 }
501 LogUtils.d(TAG, "recv msg:" + message); 465 LogUtils.d(TAG, "recv msg:" + message);
502 } 466 }
503 -  
504 try { 467 try {
505 Thread.sleep(sleepTime); 468 Thread.sleep(sleepTime);
506 } catch (InterruptedException e) { 469 } catch (InterruptedException e) {
507 continue; 470 continue;
508 } 471 }
509 } 472 }
510 -  
511 - LogUtils.d(TAG, "end");  
512 } 473 }
513 } 474 }
514 475
@@ -521,8 +482,6 @@ public class SocketService1 extends BaseService { @@ -521,8 +482,6 @@ public class SocketService1 extends BaseService {
521 482
522 @Override 483 @Override
523 public void onDestroy() { 484 public void onDestroy() {
524 -// LogUtils.d("BaseService1", this.getClass().toString() + "");  
525 -// ServiceCommandCollector.removeService(this);  
526 LogUtils.d(TAG, "socket service destroy"); 485 LogUtils.d(TAG, "socket service destroy");
527 super.onDestroy(); 486 super.onDestroy();
528 } 487 }
@@ -226,6 +226,7 @@ @@ -226,6 +226,7 @@
226 android:layout_height="wrap_content" 226 android:layout_height="wrap_content"
227 android:paddingBottom="@dimen/copyright_padding" 227 android:paddingBottom="@dimen/copyright_padding"
228 android:gravity="center|bottom" 228 android:gravity="center|bottom"
  229 + android:visibility="gone"
229 android:textColor="@color/white" 230 android:textColor="@color/white"
230 android:text="@string/copyright"/> 231 android:text="@string/copyright"/>
231 232
Please register or login to post a comment