小编zen*_*ess的帖子

是否存在使用纯websocket作为服务器后端的实时推送器类型服务?

我有兴趣开发一款多人游戏,Pharo Smalltalk作为服务器后端,以及用于Web客户端前端的琥珀色smalltalk + html5游戏库.

Pharo smalltalk有websocket支持,我已经尝试用它制作游戏.它工作正常,但我宁愿使用其中一种推送服务,以便我可以轻松扩展到许多用户.

我需要的是(我认为)是一个websocket接口(从我的后端服务器)到其中一个推送服务.我会使用firebase REST api,但似乎有点奇怪,我不得不恢复到从我的服务器到firebase服务器不断轮询,而不是简单地通过websocket订阅他们的服务并获得更新而不进行轮询.

我注意到其中许多服务都有socket.io实现,因此您可以通过socket.io将后端服务器连接到它们.不幸的是,pharo smalltalk没有实现socket.io,也没有办法使用我所知道的.

如果我找不到解决方案继续在服务器后端使用其中一个推送服务使用pharo smalltalk,我将研究另一种可能性,即负载平衡我的pharo smalltalk图像和后端服务器.

smalltalk pharo websocket socket.io pusher

11
推荐指数
1
解决办法
746
查看次数

如何安装squeak smalltalk插件?

我试图将squeakSSL与WebClient一起使用,squeakSSL页面说:

要安装SqueakSSL,您需要下载并安装该插件的二进制版本,然后通过以下方式安装SqueakSSL:

(Installer ss)
project: 'SqueakSSL';
    install: 'SqueakSSL-Core';
    install: 'SqueakSSL-Tests';
Run Code Online (Sandbox Code Playgroud)

我下载了提到的包,它只是一个DLL文件.我在网上找不到你如何安装吱吱声插件.我尝试将它放在VM和Image目录中,但squeakSSL测试失败了.

你如何安装一个吱吱声插件?

smalltalk squeak

7
推荐指数
1
解决办法
375
查看次数

在游戏中使用虚拟机?

我正处于制作3D"机器人编程"游戏的设计阶段.受到Colobot,Robot Odyssey,Cholo等游戏的启发.

我希望游戏中的每个机器人都拥有自己独立的环境/操作系统/虚拟机,就像在现实生活中一样.应该对每个环境进行沙盒处理,使其在机器人与游戏其余部分的交互方式方面是本地的.

最初我打算按照"计算系统元素"一书中的描述实现HACK VM,但后来对于这种游戏风格的性能方面是否有更好的解决方案感到好奇.

所以我的问题是:是否已经存在可以很好地满足我的目的的虚拟机架构?

Ps使用的语言和游戏引擎尚未确定,但可能是C#或smalltalk.

smalltalk robot vm-implementation

6
推荐指数
1
解决办法
400
查看次数

使用pharo,ZnWebsocket和Pharo 2.0中的Fuel通过websocket发送文件?

我试图使用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
Run Code Online (Sandbox Code Playgroud)

但是,它不适用于大于500兆字节的文件,因为Pharo内存不足.

除非有人有一个很好的建议让这个工作,我将切换齿轮并尝试使用ZincHTTPComponents提供文件,并可能向远程计算机发送一条消息,其中包含要在网络服务器上下载的文件的位置. …

smalltalk pharo websocket

4
推荐指数
1
解决办法
602
查看次数