- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Pharo 2.0 和 Zinc Websocket 通过 websocket 发送相当大的视频文件。这是 pharo 到 pharo 转移。
我徒劳地试图让它发挥作用。我确定我缺少一个非常简单的解决方案。谢谢你的帮助。
编辑:更新:我确实通过以下代码使其正常工作:
myStream :=
(FileStream oldFileNamed: 'big_buck_bunny_480p_surround-fix.avi') .
bytes := myStream next: myStream size.
myStream close.
myStream := nil.
server distributeMessage: bytes.
testConnect
| websocket1 receivedFile|
websocket1 := ZnWebSocket to: 'ws://192.168.1.102:1701/ws-chatroom'.
testProcess := [
[
| mes |
mes := [ websocket1 readMessage ]
on: ConnectionTimedOut
do: [ nil ].
mes
ifNotNil: [
Transcript
show: 'Message received in client';cr .
receivedFile := FileStream newFileNamed: 'receivedFile3.avi'.
receivedFile nextPutAll: mes.
receivedFile close.
] ] repeat ] fork
FileStream
newFileNamed: '/tmp/cog.tgz'
do: [ :stream | | entity |
stream binary.
entity := ZnClient new
streaming: true;
get: 'https://ci.lille.inria.fr/pharo/job/Cog%20Git%20Tracker/lastSuccessfulBuild/artifact/cog.tar.gz';
entity.
entity writeOn: fileStream ]
最佳答案
内存不足的原因是在处理之前将整个文件读入内存。由于无论如何您只能通过线路发送数据块,因此您也应该一次只读取一个块(这就是流的用途)。所以而不是这个:
myStream :=
(FileStream oldFileNamed: 'big_buck_bunny_480p_surround-fix.avi').
bytes := myStream next: myStream size.
myStream close.
blockSize := 128.
myStream :=
(FileStream oldFileNamed: 'big_buck_bunny_480p_surround-fix.avi') .
[ myStream atEnd ] whileFalse: [
bytes := myStream next: blockSize.
"process your bytes here" ].
myStream close.
blockSize := 128.
FileStream
oldFileNamed: 'big_buck_bunny_480p_surround-fix.avi'
do: [ :stream |
[ stream atEnd ] whileFalse: [
bytes := stream next: blockSize.
"process your bytes here" ].
FileStream>>next:
您将看到以下几行:
...
[self atEnd ifTrue:
[(howManyRead + 1) to: anInteger do: [:i | newCollection at: i put: (self next)].
^newCollection].
...
关于websocket - 在 Pharo 2.0 中使用pharo、ZnWebsocket 和Fuel 通过websocket 发送文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19213514/
四处查看图片并搜索“:=”不会产生很快弹出的相关结果。 赋值在 Pharo 图像中的具体位置以及如何实现? 最佳答案 赋值被翻译成字节码指令。对临时变量的赋值转换为 popIntoTemp:,它将当前
是否可以监听类在更改时抛出的事件?我需要知道系统浏览器中某些类中的某些内容(代码、变量等)何时发生变化。 最佳答案 注意,自 Pharo 2.0 以来,现在有一个 SystemAnnouncer 可以
我在 Pharo 中有一个 do: 需要很长时间来处理。我想向用户展示它的进度。这在 Pharo 中是如何完成的? 最佳答案 这里有两种方式: Collection 借鉴了 UIManager 并支持
在 Nautilus 系统浏览器 (Pharo 6) 中,有一个右键单击命令可以Add package... 以及 Add class... 甚至 Add protocol...,但我无法在任何地方找
有时,最好暂时使用已弃用的方法,而不是创建一个项目的多个分支来支持多个版本的 Pharo。至少,我有时就是这样做的。但是,调用已弃用的方法会使我的单元测试在 Pharo 3.0 中失败。 有什么我可以
我在网上查过 @ 的含义Pharo 中的接线员,但找不到任何东西。 Pharo是什么意思@运算符(operator)?例如,为什么25@50评估为:"(25@50)" ? 最佳答案 在 Smallta
我不明白如何创建我自己的 Slot 子类并在 Pharo 中使用它。问题是槽处理代码似乎需要我实现#size 和#index,但我不知道该放什么。 用例是表示配置的类的定义。用户可以指定部分配置,并依
我可能刚刚错过了它们,但我似乎在 Pharo 中找不到任何提及不可变数据结构的内容。来自函数式语言,我发现不可变 map 和 set 在各种场合都很有用。尽管 Pharo 对使用变异有特别的偏见,但如
我正在寻找一种方法,在给定包名称的情况下,加载该包在给定日期的最新版本。 例如: HypotheticalClassLoader loadPackage: 'Athens-Core' onDate:
使用 2.0入门,熟悉 Smalltalk,因此我在图像或“实例”一书中(已过时)找不到工具问题。 寻找输入字段(不是现成的对话框)。喜欢: (TextMorph new) contents: '(e
我正在查看 Pharo Smalltalk 的语法,并且想知道如何实现二进制消息的优先级。 如何声明这样的二进制消息? 系统如何确定一元消息的优先级? 最佳答案 用于实现二进制消息: 是的,例如,您可
对于Pharo的新手,如何创建一个包? MOOC exercise说“使用浏览器创建一个包”,但是如何? 最佳答案 您可以在 3.2 Creating a new Package in Pharo b
我关闭了标题为“Welcome to Pharo 2.0”的工作区。如何再次打开它? 最佳答案 尝试打开一个新的空白工作区并使用右上角的三角形转到“以前的内容”条目。您应该在那里找到默认的“欢迎使用
想要尝试使用 Bloc(基本最低要求:创建一个 BlElement),按照基本说明获取包 here : Metacello new baseline: 'Bloc'; repository
我有一个 C 函数,它将字符串复制到传递给它的缓冲区中: void get_machine(char *buf) { /* do something to acquire the machin
我对法罗相当陌生。我正在运行 Ubuntu Raring Ringtail (13.04) 并使用 Pharo 网站上推荐的 PPA 以及 Pharo 30218 图像,并希望启用中键功能。 (我有一
想要将我的小项目从 Pharo 5 迁移到 Pharo 6.1,当我右键单击我的包及其类时,我很高兴地找到了File Out 选项。我看到它为我的图像目录中的那些工件生成文本文件(我在 Windows
normalize: sum | strategy normalizingSum | strategy := sum collect: [ :each | each max: 0.0
为 Pharo 编写基于模拟的单元测试有哪些不同的选择?今天?各有什么优缺点? 最佳答案 还有Mocketry它提供了一个很好的 DSL 关于Pharo 模拟框架,我们在Stack Overflow上
我正在使用 PharoCloud 为我托管 Pharo 图像。默认情况下,它仅将图像的 ZIP 下载到我的设备;此 ZIP 不包含 .sources 文件。 我正在尝试使用 ZnClient 手动下载
我是一名优秀的程序员,十分优秀!