当前位置: 首页 > 知识库问答 >
问题:

我对android中的2.1.0套接字版本有问题

钱志义
2023-03-14

如何让SocketIo在android客户端工作

我在build.gradle中写了这段代码

implementation('io.socket:socket.io-client:2.1.0') {
    exclude group: 'org.json', module: 'json'
}

这是我的代码片段,这段代码不适合我,我该如何解决它

val opts = IO.Options()
    opts.forceNew = true
    opts.reconnection = false
    val mSocket = IO.socket(SOCKET_URL, opts).connect()
    mSocket?.connect()

    mSocket?.emit("join", Gson().toJson(data))
    mSocket?.on("newuser", newUser)

共有1个答案

帅彦
2023-03-14

我也在使用这个库,但在我的末端它工作正常。下面是我使用的代码

implementation ('io.socket:socket.io-client:2.0.0') {
        // excluding org.json which is provided by Android
        exclude group: 'org.json', module: 'json'
    }
val options = IO.Options()
            options.forceNew = false
            options.reconnection = true
            options.transports = arrayOf(WebSocket.NAME)
            options.query =
                "userId=" + Objects.requireNonNull(userRepository.getUser()?.user?.id)

            try {
                mSocket = IO.socket(Config.BASE_URL_DEV, options)
            } catch (e: URISyntaxException) {
                e.printStackTrace()
            }

            connect()

            mSocket?.on(Socket.EVENT_CONNECT, onConnect)

            mSocket?.on(Socket.EVENT_CONNECT_ERROR, onError)

fun connect() {
        mSocket?.let {
            if (!it.connected()) it.connect()
        }
    }

private val onConnect = Emitter.Listener {
        Timber.e("AppSocket - onConnect called")
    }

如果它在您的终端不起作用,请检查任何在线套接字相关网站的url,以确保问题是否在您的终端

 类似资料:
  • 我正在编写一个简单的客户机-服务器套接字程序,可以在两台不同的计算机上运行。服务器是一个静态ip地址的桌面,客户端是一台连接到无线网络的笔记本电脑。两者都使用视窗10作为操作系统。我还打开了防火墙端口。 这是我的密码。此代码在一台计算机中运行良好,但当另一台计算机(我的笔记本电脑)尝试连接到服务器时,会出现WinError 10057。 server.py client.py

  • 我正在尝试使用Telegram Java API https://github.com/ardock/Telegram-API,我从一些简单的RPC调用开始: 连接失败后,它一次又一次尝试连接,但不是很成功。我不知道是什么原因和如何解决这个问题。也许有人也有同样的问题?我将非常感激你的帮助)

  • 希望在2.1.0版本中分享清除或删除Kafka主题的不同方法。我在这里发现了类似的问题清除Kafka主题,然而,接受的答案已被弃用,它适用于Kafka版本0.8及以下,因此创建了这个问题的答案。 这不是一个重复的问题。

  • CompileSdkVersion compileSdkVersion 告诉 Gradle 用哪个 Android SDK 版本编译你的应用。使用任何新添加的 API 就需要使用对应 Level 的 Android SDK。 需要强调的是修改 compileSdkVersion 不会改变运行时的行为。当你修改了 compileSdkVersion 的时候,可能会出现新的编译警告、编译错误,但新的

  • 我正在尝试在使用用Python编写的套接字服务器与使用Flutter Web制作的客户端之间建立连接。 我测试了各种套接字包,如adhara_socket_io和flutter_socket_io,但都不起作用。我在Android上尝试了相同的代码片段,但它们也不起作用。 我继续搜索,找到了这个代码片段。它使用包中的类。 这个连接到Python服务器,并从Android发送数据,但当我从Web测试