check lone surrogate (compatible with utf8.js v2.1.0)
This commit is contained in:
@@ -5,6 +5,7 @@ import io.socket.emitter.Emitter;
|
||||
import io.socket.engineio.parser.Packet;
|
||||
import io.socket.engineio.parser.Parser;
|
||||
import io.socket.thread.EventThread;
|
||||
import io.socket.utf8.UTF8Exception;
|
||||
|
||||
import javax.net.ssl.HostnameVerifier;
|
||||
import javax.net.ssl.SSLContext;
|
||||
@@ -98,7 +99,11 @@ public abstract class Transport extends Emitter {
|
||||
@Override
|
||||
public void run() {
|
||||
if (Transport.this.readyState == ReadyState.OPEN) {
|
||||
Transport.this.write(packets);
|
||||
try {
|
||||
Transport.this.write(packets);
|
||||
} catch (UTF8Exception err) {
|
||||
throw new RuntimeException(err);
|
||||
}
|
||||
} else {
|
||||
throw new RuntimeException("Transport not open");
|
||||
}
|
||||
@@ -129,7 +134,7 @@ public abstract class Transport extends Emitter {
|
||||
this.emit(EVENT_CLOSE);
|
||||
}
|
||||
|
||||
abstract protected void write(Packet[] packets);
|
||||
abstract protected void write(Packet[] packets) throws UTF8Exception;
|
||||
|
||||
abstract protected void doOpen();
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import io.socket.engineio.parser.Parser;
|
||||
import io.socket.parseqs.ParseQS;
|
||||
import io.socket.thread.EventThread;
|
||||
import io.socket.emitter.Emitter;
|
||||
import io.socket.utf8.UTF8Exception;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@@ -152,7 +153,11 @@ abstract public class Polling extends Transport {
|
||||
@Override
|
||||
public void call(Object... args) {
|
||||
logger.fine("writing close packet");
|
||||
self.write(new Packet[] {new Packet(Packet.CLOSE)});
|
||||
try {
|
||||
self.write(new Packet[]{new Packet(Packet.CLOSE)});
|
||||
} catch (UTF8Exception err) {
|
||||
throw new RuntimeException(err);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -167,7 +172,7 @@ abstract public class Polling extends Transport {
|
||||
}
|
||||
}
|
||||
|
||||
protected void write(Packet[] packets) {
|
||||
protected void write(Packet[] packets) throws UTF8Exception {
|
||||
final Polling self = this;
|
||||
this.writable = false;
|
||||
final Runnable callbackfn = new Runnable() {
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.squareup.okhttp.Response;
|
||||
import com.squareup.okhttp.ws.WebSocket.PayloadType;
|
||||
import com.squareup.okhttp.ws.WebSocketCall;
|
||||
import com.squareup.okhttp.ws.WebSocketListener;
|
||||
import io.socket.utf8.UTF8Exception;
|
||||
import okio.Buffer;
|
||||
import okio.BufferedSource;
|
||||
|
||||
@@ -142,7 +143,7 @@ public class WebSocket extends Transport {
|
||||
client.getDispatcher().getExecutorService().shutdown();
|
||||
}
|
||||
|
||||
protected void write(Packet[] packets) {
|
||||
protected void write(Packet[] packets) throws UTF8Exception {
|
||||
final WebSocket self = this;
|
||||
this.writable = false;
|
||||
for (Packet packet : packets) {
|
||||
|
||||
Reference in New Issue
Block a user