问题标签 [androidasync-koush]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5216 浏览

java - 如何检查 WebSocket 是否已连接

我使用 KOUSH 库https://github.com/koush/AndroidAsync#can-also-create-web-sockets创建了一个 Websocket 服务类

现在我想检查 Websocket 是否从我的 mainActivity 连接到我的服务器。你知道我怎么检查这个吗?谢谢

0 投票
1 回答
4215 浏览

android - 如何使用 Koush AndroidAsync 关闭/重试/管理 WebSocket?

我将 Koush 的 AndroidAsync 用于 WebSocket 客户端。我的代码遵循https://github.com/koush/AndroidAsync上的示例并且有效。(下面复制的示例。)

我需要我的应用程序在启动时打开一个 websocket,但是,我需要处理一些问题:

A) 我需要允许用户更改 websocket 服务器的地址。在这种情况下,我需要关闭现有的 websocket(可能已经失败)并打开一个到新服务器的 websocket。

B) 服务器可能已关闭或不可用。在这种情况下,我想将其报告给活动。目前它只是默默地失败了。

所以按照重要性排序:

  1. 如何关闭 websocket?
  2. 如何有效地将 websocket 打开到新地址?(我可以重复使用我的 AsyncHttpClient 吗?)
  3. 如何重试失败或丢失的连接?
  4. 如何提供连接失败/关闭的通知?

如果这在某处有记录,请告诉我。

来自网站的示例代码复制如下:

0 投票
1 回答
535 浏览

android - AndroidAsync:无法设置 websocket 连接

我正在开发一个产品,我们有一组后端服务器,我们在其中建立了 web-socket 连接来传输数据,为此我使用AndroidAsync(V2.1.6)客户端库。这些服务器在不同版本的 tomcat 上运行。

从 android 方面来看,它工作正常,并且 websocket 已经在所有服务器上建立起来,直到今天没有任何问题,但现在我们无法在其中一个服务器上建立连接。

困境是android端和服务器端的代码也没有变化。相同的代码适用于所有服务器,而不适用于这一特定服务器。

经过数小时的挖掘,我们发现连接失败的服务器最近更新了最新的 tomcat 配置和我们没有用于所有其他服务器的相同tomcat 版本(V8.0.23) 。并且其中一位服务器人员通过分析更改日志了解到在 tomcat 中存在一些与 web-socket 相关的更改。

我已尽一切努力探索并摆脱这个问题,但我无法解决这个问题。

尝试在该服务器上使用 AndroidAsync 进行连接时来自服务器的堆栈跟踪:

我希望你明白。任何形式的帮助都会很棒。谢谢。

0 投票
1 回答
2032 浏览

android - Slack 实时消息传递 websocket

试图在应用程序中实现这一点。Slack RTM 调用 rtm.start 后,我​​得到 JSON 响应并提取 wss url。之后,按照文档我需要打开 websocket。尝试了两个库

首先给出 TimeoutException,其次 - 使用 i = -1, b = true 进入 onClose 方法(不调用 onError 或 onOpen,请参见下面的代码)。

使用 Java-WebSocket 我已经尝试过这段代码(来自 github 上的示例的标准):

正如我上面所说 - 只有 onClose 被调用。

使用 AndroidAsync 也尝试了示例中的标准代码:

我以前从未在 android 上使用过 websockets,并且无法理解我做错了什么。将感谢您的帮助。

JSON 中的 URL 的类型为

0 投票
0 回答
135 浏览

java - koush AndroidAsync 库内容类型无法更改

我想使用 AndroidAsync 库发出 post http 请求,但我无法将内容类型更改为'application/x-www-form-urlencoded'for request

我不知道该怎么办。

0 投票
1 回答
341 浏览

android - Koushik Dutta 在 Android Async 库中设置心跳间隔

我正在使用 com.koushikdutta.async:androidasync:2.1.3 作为 Android SocketIO 客户端库。有没有办法更改库中的默认心跳间隔?

0 投票
1 回答
2384 浏览

android - 为什么 AndroidAsync 断开连接时间这么长?

我正在使用 AndroidAsync koush 低级网络协议库。我正在使用 WebSocket 连接到服务器。我能够连接、发送/接收消息和断开连接。我的断线时间很长。服务器平均 59 秒内未检测到断开连接。

为了重现问题,我连接 WebSocket,授权,并开始每 10 秒 ping 一次。然后我打开飞行模式,我的网络连接断开了。此时调用了 setClosedCallback 方法。这是我记录此消息的方式:

这是让我知道 WebSocket 已关闭的日志消息:

WebSocket关闭异常:recvfrom失败:ETIMEDOUT(连接超时)

然而,我们的服务器在大约 59 秒内没有收到断开连接消息。我们的服务器正在使用这些库:

  • gevent==1.0
  • gevent-websocket==0.9.2
  • 小绿==0.4.2

有没有办法加快我的速度?是否有某个地方的套接字级别超时,我可以将其设置为较低的值,以便我的服务器人员更快地获得断开连接消息?

0 投票
0 回答
478 浏览

android - Android koush/ion post 请求被防火墙阻止

我正在使用 koush/ion 库向我的服务器发送发布请求。它可以使用我的家庭 wifi、我朋友的 wifi、移动数据和除办公室 wifi 以外的其他人的移动数据。

它返回 null ,我一直想知道为什么。我以某种方式设法打印了错误,它表明 WFilter 阻止了我的请求。之后,我让办公室里管理防火墙的 IT 人员查看我的请求日志,然后看到来自 koush/ion 的流式请求导致它被阻止。当他们禁用流过滤器时,我能够使用 koush/ion 再次发送我的帖子请求。

我的问题是,我可以将 ion/koush 中的某些内容添加到我的正常代码中以防止这种情况发生吗?我不确定它是否涉及端口或其他东西,但这是我的简单代码,适用于大多数互联网连接,但在我的办公室除外。

0 投票
1 回答
829 浏览

android - 使用 contentType application/json POST 到 Android AsyncHttpServer 将请求正文设置为 null

我有AsyncHttpServer在我的 Android 设备上工作。我有 POST 设置的请求回调方法,如下所示:

服务器在哪里new AsyncHttpServer(),映射器在哪里new ObjectMapper()

我在以 开头的行有断点List<T>,我正在尝试使用 cURL 将一些数据发布到服务器,如下所示:

出于某种原因,当我使用Content-Type设置为application/json request.getBody()返回发布时null,但如果我将内容类型更改为text/plainbody 包含 JSON 数据集和 cURL,正如我所期望的那样。

有谁知道为什么会发生这种情况,我怎样才能让它工作Content-Type: application/json

0 投票
3 回答
225 浏览

sockets - AndroidAsync TCP - 检测套接字的正确方法不再可用写入?

我想知道在客户端检查使用 AndroidAsync 库打开的 TCP 套接字不再可用的正确方法是什么?这是在(普通 TCP,非 AndroidAsync)服务器未明确启动关闭套接字的情况下(因此未调用 ClosedCallback)。例如,当服务器冷重启时。

看来 DataCallback 只有在服务器发回数据时才可用,不能用于接收错误消息。

在我看来,

也不抛出异常。

所以此时我不确定如何检测套接字不再可用,即使客户端定期向其写入数据。