我想在 Android (4.4) 上的 WebView
中使用 Server Sent Events。 EventSource 应该连接到本地 Port (5003)
,其中我有一个 ServerSocket 监听传入的请求:
Socket _socket;
//Creating Server Socket listening on Port 5003
try {
InetAddress adress = InetAddress.getByName("localhost");
ServerSocket serversocket = new ServerSocket(5003, 50, adress);
while(true){
_socket = serversocket.accept(); //Accept incoming request
Logger.Log.d("SSE","Received Server Sent Event Request);
}
} catch (IOException e) {
e.printStackTrace();
}
我的 HTML 页面中的 JavaScript:
var source = new EventSource('http://localhost:5003/');
source.addEventListener('message', function(e) {
console.log(e.data);
}, false);
source.addEventListener('open', function(e) {
// Connection was opened.
console.log('open');
}, false);
source.addEventListener('error', function(e) {
var txt;
switch( event.target.readyState ){
// if reconnecting
case EventSource.CONNECTING:
txt = 'Reconnecting...' + event.target.url;
break;
// if error was fatal
case EventSource.CLOSED:
txt = 'Connection failed. Will not retry.';
break;
}
console.log(txt);
}, false);
EventSource 没有连接到我的本地套接字。 每 3 秒调用一次 onError 并且 EventSource 尝试重新连接。
I/chromium(15898): [INFO:CONSOLE(24)] "Reconnecting...http://localhost:5003/"
谁能帮帮我?
最佳答案
我自己解决了这个问题。
代码有效。我只需要将我的 Android 设备重置为出厂默认设置。 现在一切正常。
关于java - 服务器发送的事件 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31693910/