Skip to content

Commit bb6e1ff

Browse files
committed
重写
1 parent 520e0b3 commit bb6e1ff

2 files changed

Lines changed: 23 additions & 3 deletions

File tree

src/main/java/cn/jja8/newbinggogo/NewBingGoGoServer.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,11 @@
1010
import java.net.URL;
1111
import java.util.HashMap;
1212
import java.util.Map;
13+
import java.util.concurrent.Executors;
14+
import java.util.concurrent.ScheduledExecutorService;
1315

1416
public class NewBingGoGoServer extends NanoWSD {
17+
ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
1518
public static void main(String[] args) {
1619
if(args.length<1){
1720
System.err.print("需要指定运行端口号!");
@@ -67,7 +70,7 @@ public Response serve(IHTTPSession session) {
6770

6871
@Override
6972
protected WebSocket openWebSocket(IHTTPSession handshake) {
70-
return new NewBingGoGoServerWebSocket(handshake);
73+
return new NewBingGoGoServerWebSocket(handshake,scheduledExecutorService);
7174
}
7275

7376
/*

src/main/java/cn/jja8/newbinggogo/NewBingGoGoServerWebSocket.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,41 @@
77
import java.net.URI;
88
import java.net.URISyntaxException;
99
import java.util.LinkedList;
10+
import java.util.concurrent.ScheduledExecutorService;
11+
import java.util.concurrent.ScheduledFuture;
12+
import java.util.concurrent.TimeUnit;
1013

1114
public class NewBingGoGoServerWebSocket extends NanoWSD.WebSocket {
1215
NewBingGoGoClientWebSocket newBingGoGoClientWebSocket;
1316
LinkedList<String> messList = new LinkedList<>();
14-
public NewBingGoGoServerWebSocket(NanoHTTPD.IHTTPSession handshakeRequest) {
17+
ScheduledExecutorService scheduledExecutorService;
18+
ScheduledFuture<?> task;
19+
20+
public NewBingGoGoServerWebSocket(NanoHTTPD.IHTTPSession handshakeRequest, ScheduledExecutorService scheduledExecutorService) {
1521
super(handshakeRequest);
1622
URI url;
1723
try {
1824
url = new URI("wss://sydney.bing.com/sydney/ChatHub");
1925
} catch (URISyntaxException e) {
2026
throw new RuntimeException(e);//这个异常这辈子都不会出的
2127
}
22-
28+
this.scheduledExecutorService = scheduledExecutorService;
2329
newBingGoGoClientWebSocket = new NewBingGoGoClientWebSocket(url,this,messList);
2430
}
2531

2632
@Override
2733
protected void onOpen() {
34+
task = scheduledExecutorService.scheduleWithFixedDelay(() -> {
35+
if (!isOpen()) {
36+
task.cancel(false);
37+
return;
38+
}
39+
try {
40+
ping(new byte[1]);
41+
} catch (IOException e) {
42+
task.cancel(false);
43+
}
44+
},2,2, TimeUnit.SECONDS);
2845
newBingGoGoClientWebSocket.connect();
2946
}
3047

0 commit comments

Comments
 (0)