Seaside 中的这些 Web 服务器有什么区别:Zinc、Kom 和 Swazoo?

What is the difference between these web servers in Seaside: Zinc, Kom, and Swazoo?

自从我涉足 Seaside, and, wanting to play around with it again for a small project, I downloaded the one-click image for Pharo and thought I'd look through the documentation to get my bearings. (There is a related question about performance differences between two of these, and one about which ones can server static files 以来已经有一段时间了,但都没有解释它们之间的区别。)

A Walk on the Seaside shows two available servers in the "Seaside Control Panel": WASwazooAdaptor and WAComancheAdaptor. The download page for Seaside on Pharo 的第一张图片说您可以启动 ZincKomSwazoo 作为您的 Web 服务器,并且它们中的任何一个都可以用作Seaside 控制面板的适配器。但是,我新下载的图像中的面板只有 WATestServerAdaptorZnZincServerAdaptorZnZincStaticServerAdaptorZnZincStreamingServerAdaptor。其中第二个是默认情况下唯一可用的。

我从所有这些相互矛盾的信息中了解到,Zinc 是最新使用的,至少在 Pharo 上是这样——对吗?其他的都过时了吗?或者它们是否各有优缺点,需要添加到图像中(例如通过 Monticello)? Kom 和 Swazoo 仅适用于 Squeak 吗?我什么时候在 Pharo 上使用三个不同的 Zinc 服务器?我希望有人能解决我的困惑。

Zinc 是 Pharo 自版本 1.3 (Zinc) 以来的默认捆绑 HTTP 堆栈框架 (server/client)。据我所知只有 Pharo 支持 Zinc。

Kommanche (Kom) 是 Squeak 的默认 Web 服务器,也仅在 Squeak 中受支持(它 "can" 运行 在 Pharo 中,但只有少数人仍在使用它)。

Swazoo 试图在不同的 Smalltalk 方言之间建立一个通用的 Web 服务器(它是在 Camp Smalltalk 活动期间构想出来的)并且依赖于一组称为 SPort(Smalltalk 可移植性)的通用 "compatibility classes",并且在有一段时间它成功地成为了一些与网络相关的解决方案的基线(我做了两个 Swazoo 端口到 Dolphin Smalltalk)。

Seaside 3 是它的主要依赖项,适配器模式被选择来提供一个通用的 API 因此不需要为所有 Smalltalk 方言提供一个通用的 Web 服务器,每个 Web 只需一个适配器服务器实现。对于特定于平台的功能,选择了一个新的兼容层 (Grease),同时也降低了对 SPort 的依赖性。

Swazoo至今仍在AIDA/web框架中使用,主要是因为它的作者也是Swazoo本身的主要编码者之一。

关于 ZnServer 的不同子类,如果您仍然不知道使用哪一个,您最好只使用 ZnZincServerAdaptor startOn: 8080,您将在使用时确定其他适配器的具体用途。

提示:ZnZincServerAdaptor default server debugMode: true.