java - 服务器发送的事件 Android

标签 java android sockets http server-sent-events

我想在 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/

相关文章:

java - 如何以编程方式获取颜色属性的值

java - 当我运行测试 eclipse 和控制台时出现不同类型的异常?

java - Spring Boot @ConfigurationProperties 从 yaml 加载列表不起作用

android - 如何以正确的方式为移动设备使用 CSS?

java - 如何将捕获的图像路径从imageview保存到mysql数据库

android - Android 中的 HTML 选择多个呈现奇怪?

android - 按项目位置在 GridView 中设置背景

c - 在 Linux/Unix/Posix/BSD 类型系统上解析 DNS TXT 记录的最佳方法?

Linux UDP 最大接收缓冲区大小

java - 监听服务器发送尝试的正确方法