问题标签 [socketrocket]

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 投票
1 回答
9540 浏览

ios - 如何在 iOS 上调试 iOS EXC_BAD_ACCESS KERN_INVALID_ADDRESS

我在使用 SocketRocket 时遇到 iOS EXC_BAD_ACCESS 错误,我想知道我可以做些什么来进一步调试问题以确定问题是在我这边还是在 SocketRocket 那边。

我得到的堆栈跟踪是:

或者有时

我的代码库很简单,基本上订阅事件,并在队列中执行socketrocket sendMessage(处理并发)

我读过有人使用 NSZombies 来调试问题,但我的问题很少发生,所以我可能会在问题变得可见之前耗尽内存。它在 99% 的时间里都能正常工作。

有什么关于 iOS 可能会随机崩溃使用套接字等的应用程序的信息吗?例如,我们启用了后台提取,这可能是一些随机崩溃的原因吗?

谢谢 !

0 投票
0 回答
712 浏览

ios - iOS Websocket 库(SocketRocket)每隔几秒就会断开连接

我正在处理 websocket 连接,我正在使用 SocketRocket( https://github.com/square/SocketRocket ) 库,我成功地连接到服务器,但连接每隔几秒就会断开连接。我不知道为什么会发生这种情况,因为我想要一个持久连接,而 Websockets 仅用于此目的

如果可能的话帮助我。

谢谢

0 投票
1 回答
1560 浏览

ios - pkyeck socket.IO-objc 未向 socket.io 服务器发送事件

我将 socket.IO-objc 库(https://github.com/pkyeck/socket.IO-objc)与运行 socket.io 的节点服务器结合使用,虽然我能够让我的 iOS 客户端连接对于服务器,我似乎无法使用objective-c api触发服务器上的消息事件。这是我的 obj-c 代码:

和我的服务器代码:

});

谁能解释为什么服务器没有收到消息事件?谢谢!

0 投票
2 回答
2968 浏览

ios - 域=NSPOSIXErrorDomain 代码=61

我正在尝试使用 SocketRocket 和 ws 在客户端(iOS 应用程序)和服务器(Node.js)之间进行连接,如下所示。

iOS(SocketRocket):

节点.js(ws):

然后,我收到以下消息:

我一直在寻找解决这个问题的方法,但我找不到确切的解决方案。我该如何解决这个问题?

0 投票
1 回答
6876 浏览

ios - SocketRocket - Sec-WebSocket-Accept 无效

尝试使用 SocketRocket 连接到自定义套接字服务器时,出现错误:

我已将此链接回 _HTTPHeadersDidFinish 中的 _checkHandshake 方法。_checkHandshake 方法执行以下操作:

我找到了这个问题,并且拥有最新版本的 socketrocket,但似乎无法正常工作?

https://github.com/square/SocketRocket/issues/24

请告诉我如何解决此错误(SocketRocket - Invalid Sec-WebSocket-Accept)

0 投票
0 回答
247 浏览

ios - 有没有更稳定或更积极开发的 SocketRocket 的分支?

我已经在几个项目中使用了 SocketRocket,并注意到 SocketRocket 有很多未解决的问题并且有问题。我亲自修补了一些我经历过的崩溃。

Square 在过去一年似乎没有维护 SocketRocket。他们的回购是否有另一个被认为更稳定/权威的分支?

我什至愿意考虑一个替代库,甚至可能是一个用 C/C++ 编写的库,如果它可以很好地与 ObjC 编码模式配合使用的话。

0 投票
2 回答
1404 浏览

ios - 从后台发送 UILocationNotification

UILocationNotification我有一个应用程序,当应用程序不在前台/活动时,我需要发送一个。如果我有我的代码这样做,它不会发送,直到应用程序打开并处于活动状态。

这是我的功能:

更新: 现在看来问题在于应用程序在后台时与服务器的连接正在“暂停”。一旦我打开应用程序,所有数据都会立即进入。我正在使用SocketRocket连接到我的Node.js Primus Web 套接字服务器。这是通常发生的事情吗?这是我第一次使用SocketRocket所以我不确定。

更新: 我还启用Remote Notifications了后台模式,我还注册了远程通知,并且在设备上,我还确保启用了“横幅”和“徽章”。

更新: 我还设置了 Web 套接字以使用后台队列。

连接仍在暂停。

谢谢!

0 投票
2 回答
1114 浏览

ios - SocketRocket RunLoop 零星崩溃

所以我们的应用程序在 SocketRocket 中遇到了一段时间的崩溃。我们每天大约会发生 20 次崩溃,堆栈跟踪如下:

我已经尝试了 20 多个小时。它非常零星 - 我重现它的最佳方法是注销,因此连接都失败,然后尝试煽动一些连接,和/或等待几分钟。几分钟后工作大约 1/4 的时间。但是,有一些人在仍然登录时遇到此崩溃的日志。

就代码而言,我不知道是什么导致了 EXC_BAD_ACCESS,因为 13 以上的所有条目都没有可用的源,而且查看汇编代码并没有真正启发我 - 我发现的只是 ecx在处理过程中被设置为 0xc,然后 spin_lock$VARIANT$mp 尝试将一些寄存器交换为位于 ($ecx) 的内容,然后它崩溃了。 [_SRRunLoopThread main],我有来源的堆栈跟踪的唯一部分如下:

它在线上崩溃while。我怀疑某处某处的某些东西在它应该被释放之前被释放了,但我不确定它是否是一个SRWebSocket或以某种方式添加到运行循环的块或什么。我对运行循环并不完全熟悉。

我已经没有什么可以做的事情来解决这个问题了,而且我几乎没有取得任何进展。任何帮助表示赞赏。

0 投票
2 回答
1811 浏览

ios - SocketRocket 连接在后台暂停

我正在使用SocketRocket,但我无法让它在后台传递消息。当我再次打开该应用程序时,它会恢复连接(无需重新连接)并且所有消息都会立即进入。

这是我的连接代码:

我也试过没有

行,但这无济于事。

你知道发生了什么吗?

谢谢!

0 投票
1 回答
3087 浏览

xcode - 64 位模拟器的 Xcode Mach-O 链接器错误

我一直在 Xcode 中开发 iOS 应用程序。它在常规模拟器中编译和运行完美,但是当我将模拟器设备切换到 64 位时,它失败了,出现 13 个新警告和 37 个新错误,所有这些都与(我认为)我正在使用的外部库相关联称为ObjectiveDDPhttps://github.com/boundsj/ObjectiveDDP)。人们也有类似的问题,但我的理解是它们应该在最近发布的框架更新中得到修复,但在我看来,这个更新无济于事。我使用的第二个框架是SocketRockethttps://github.com/square/SocketRocket),但我认为这不是 Xcode 输出的罪魁祸首。

此外,很明显,很多人都遇到过来自与 64 位不兼容的框架的此类 Mach-O 错误。但是,我觉得这是我的文件组织的问题。话虽如此,我也认为首要问题是: Ignoring file /path/to/project/ObjectiveDDP/libcrypto.a, missing required architecture x86_64 in file /path/to/project/ObjectiveDDP/libcrypto.a. 有没有办法通过添加该架构来解决该文件中的这个问题?根据对类似问题的回答,我尝试将构建设置架构更改为Standard architectures(armv7, armv7s, arm64)并重新检查是否满足其他依赖项。

这是错误的一部分:

以及 Xcode 中错误的截图:

经过我的研究,我仍然想知道这是否只是一个模拟器问题,并且在物理 iPhone 5S 上测试时它会自行解决,以及我如何才能摆脱这些错误?这里有什么暗示文件组织问题吗?另外两个警告是:

ld:警告:找不到选项“-L/path/to/place/projectname/projectname/ObjectiveDDP”的目录 ld:警告:找不到选项“-L/path/to/place/projectname/SocketRocket/ObjectiveDDP”的目录

这两个路径不存在,但我认为我通过删除文件夹、将它们移动到垃圾箱并重新添加它们来纠正它。

任何见解将不胜感激。