Commit 9a0d88c0a7d3d23aff6e64d8c3241ff061231040

Authored by 李攀
1 parent 5128ec28

code colear

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