gpt4 book ai didi

android - SocketIO的回调功能是SocketIO独有的功能吗?如果是这样,标题是如何形成的?

转载 作者:行者123 更新时间:2023-11-29 03:39:00 25 4
gpt4 key购买 nike

我正在创建一个 native 移动项目,它将使用 NodeJS 上的 SocketIO 作为通信 API。

我们希望使用 SocketIO 的回调功能,但要在 native iOS(或 Android)上使用。

但是,回调功能没有出现在我发现的任何 WebSockets 客户端实现中,所以我猜它是 SocketIO 独有的功能?

如果是这样,socketIO 使用有效负载之前的 header 信息是什么来实现这一点。

通过网络,我可以在 JSON 负载之前看到一些二进制文件,但我不是 JS 大师,无法分析客户端的回调功能是如何完成的,因此我可以在 ObjC 和 Java 中复制它。

最佳答案

Socket.IO 不仅仅是 WebSockets,还有许多协议(protocol)和解决方法,它将使用并回退到旧协议(protocol),以尝试建立最可靠和实时的通信层。
它实际上是一堆协议(protocol)。因此,如果您希望与 Android 或 iOS 进行通信,请考虑一个单一的协议(protocol),即纯 WebSocket,如下所示:https://github.com/einaros/ws

然后您需要有适用于 Android 和 iOS 的 native WebSockets 库。尽管不要期望它们的行为方式与您在 Node.js 中习惯的方式相同,因为这些平台完全不同。可能会拉取消息而不是事件驱动(回调)。

WebSocket 本身是基于消息的协议(protocol),通过 TCP 将数据作为完整或部分消息发送,每条消息都带有额外的帧( header ),其中包含一些有关消息的数据,如类型、长度、掩码等。您不需要深入了解 WebSocket 以便使用它们。

Socket.IO 在消息中发送 JSON 数据,并且只做自己的工作,以确保有简洁且有用的方法来发出和捕获事件。

请检查几个库,例如:https://github.com/pkyeck/socket.IO-objc对于 iOS(socket.io 客户端),或 https://github.com/koush/android-websockets

这些库实际上处理它们的回调,因此您不需要了解 WebSockets 或 Socket.IO 内部的工作原理。

关于android - SocketIO的回调功能是SocketIO独有的功能吗?如果是这样,标题是如何形成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18732114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com