问题标签 [cfreadstream]

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 回答
1295 浏览

ios - 子类化 NSInputStream 以从本地文件路径上传特定部分的数据

我在一个文件中有 100 MB 的数据。这 100 mb 的数据将被虚拟分割。即,我需要创建一个指向不同 5MB 块的 NSInputStream。这可以通过使用 NSData 创建流来实现。

但是我想知道我是否可以拥有一个指向文件中数据范围的 NSInputStream ?

0 投票
2 回答
1768 浏览

ios - iOS - 将输入流的委托设置为另一个类

我想知道是否可以将输入流的委托设置为另一个类。到目前为止,我遇到的所有示例都是 self: [inputStream setDelegate:self]。我想将委托设置为另一个类,例如ViewController非自我。提前致谢。

0 投票
1 回答
1173 浏览

ios - CFReadStreamRead 在 iOS 7 下永远阻塞

我看到一个问题CFReadStreamRead,其中作为流式文件上传的一部分,永远不会返回。

似乎只发生在 iOS7 上——并且在针对物理设备进行调试时比在模拟器中更频繁——或者至少,它在那里更为明显。

我们有一个文件的 HTTP(或 HTTPS,问题发生在任何一种方式,使用本地托管或远程服务器)POST,通过直线阻塞(非事件驱动)CFNetwork 调用。这是 C 代码调用这个处理程序的必要条件;没有回调的规定。

这很好,网络调用发生在后台线程和/或通过异步调度。

有问题的网络代码归结为(为简洁起见删除错误处理):

就其本身而言,这段代码想在 iOS7 下立即挂起。usleep如果我在它之前添加一个带有一些调用的循环(CFReadStreamHasBytesAvailable一路检查),它几乎总是会成功。每隔几百次尝试,它仍然会失败,永远不会返回。同样,主线程不受影响。

我希望 GM 能清除这种行为,但它仍然存在。

添加一个 runloop/callback 方法来监视可用字节事件没有任何效果 - 当调用挂起时,也看不到任何事件。

关于为什么会发生这种情况或如何防止这种情况的任何建议?还有其他人CFReadStream在 iOS 7 下看到不同的行为吗?

0 投票
0 回答
632 浏览

ios - 从 CFReadStream 读取数据并将其转换为 NSString

我正在构建的 iPhone 应用程序有问题。应用程序向 python 服务器发送 JSON 请求,然后从服务器读取 JSON 响应。我有以下函数将数据发送到服务器并获取响应并将其放入 NSData。(我把帖子的服务器地址拿出来了)

问题是,当我尝试获取 NSData 并将其转换为 NSString 时,它的长度为 0,而 NSData 的长度> 0。以下代码是我如何获取 NSData 并将其转换为 NSString。

这个问题似乎发生在大约 10% 的时间里。有时它不会发生一个小时,有时它会连续发生 10 次。感谢您提供任何帮助,如果您需要我可能忘记提供的更多信息,请告诉我。

0 投票
0 回答
519 浏览

c++ - OSX/IOS 中 CFReadStreamCreateForHTTPRequest 背后的推理

我最近用 c++ 为 iOS/OSX 编写了一个异步 HTTP 客户端。我对为什么标头没有到达我的 CFHTTPMessageRef 响应对象感到困惑,直到我意识到有一个对象潜伏在包含标头的流的属性中(在处理 kCFStreamEventBytesAvailable 事件之后)。

所以现在我在流结束通知期间将属性中的标头复制到我的响应对象中,然后再调用我的事件处理程序。

(代码可根据要求提供,有很多)

Apple 文档在这个主题上通常保持沉默,我想知道是否有人知道 Apple 做出这一设计决定的原因。我很想知道以防我在某个地方有根本的误解?

编辑:文档是这样说的:

在运行循环上安排请求后,您最终将获得标头完成回调。此时可以调用CFReadStreamCopyProperty从读取流中获取消息响应

但是,似乎没有迹象表明此事件掩码的名称或值是什么。

编辑:做了一些实验后,我看到流在发送kCFStreamEventOpenCompleted通知之后和第一个kCFStreamEventHasBytesAvailable通知之前的某个时间创建了自己的响应对象。

kCFStreamEventHasBytesAvailable事件处理程序中,我可以这样做:

并且流的响应消息对象确实使用新的正文数据进行了更新。现在我很好奇为什么这不是由流自动完成的?

0 投票
0 回答
2236 浏览

ios - 为 ios 在后台保持活动的 UDP 套接字

我的问题实际上不是UDP在后台应用程序时保持套接字活动的代码是什么,而是对苹果开发者网站中的文档感到困惑。

根据苹果开发人员指南,如果我设置kCFStreamNetworkServiceType为,kCFStreamNetworkServiceTypeVoIP那么当应用程序在后台时,此套接字将由系统专门管理。

在此处输入图像描述

CocoaAsyncSocket 库中,他们报告说此设置在套接字中不起作用,UDP而仅在TCP套接字中起作用。我还测试了本机CFReadSteam接口的这个选项,但是当应用程序在后台时套接字没有活动。但苹果开发者网站从未提及它。 在此处输入图像描述

这是真的只有 tcp 套接字可以在后台保持活动还是我在我的代码中犯了任何错误?

0 投票
1 回答
845 浏览

facebook-graph-api - 如何在 Facebook 上提交权限(read_stream、publish_actions)以供审核

我想从 Facebook 页面共享用户的墙帖(照片或视频)。我正在使用graph.facebook.com/USER_ID/feed选项通过read_stream许可获取此数据。是否有任何其他选项可用于所需任务?

我必须在需要时通过我的应用程序在用户的墙上发布状态。我正在使用publish_actions选项。

问题是这些权限需要 Facebook 审核。我正在网站和应用程序审查所需的隐私政策 URL 上工作。是否可以根据本地主机站点地址提交审核?我应该在隐私政策 URL 和服务条款 URL 选项中写什么???因为我的网站处于开发阶段,我需要用户的帐户数据以进行进一步的工作。

0 投票
1 回答
1138 浏览

ios - NSOutputStream 的 hasSpaceAvailable 方法总是返回 False

在我的应用程序中,我需要在通过网络执行某些操作时使用轮询而不是运行循环。

我的代码如下所示

viewControler.m 如下

服务器收到一些数据后回复“Hello”消息

在运行上面的代码时,它总是返回有 noSpaceAvailable/ noBytesAvailable 可以分别从输出和输入流中写入或读取。

我想知道我是否在这里遗漏了什么。

0 投票
1 回答
600 浏览

ios - 无法使用 CFWriteStream 写入

我已经创建了一个 UDP CFSocket,我可以在不使用任何文件句柄的情况下发送数据。但是,当我创建 CFReadStreamRef、CFWriteStreamRef 并使用它们发送数据时,它会失败。控件不返回。任何人都可以帮我解决这个问题吗?代码如下:

0 投票
1 回答
449 浏览

javascript - 通过readStream将数组的值与javascript文件一起发送到客户端?

我有一个 node.js 服务器使用 node-mysql 提取数据并将其保存到一个名为 FRUITS 的数组中。

我需要使用我使用'readStream'发送给客户端的javascript文件来传输这个数组(FRUITS)的值。

关于如何做到这一点的任何想法?下面的代码

节点控制器.js