文档介绍:22 第 4 章介绍 ElectroServer
第 4 章第 3 章
介绍 ElectroServer
第 2 章中,我们介绍了 Socket 服务器。它是一种通常在远程地点运行,并且通过互
在联网可访问到的软件,管理着数千个客户端程序(在这里我们指的是多人游戏和虚
拟世界的客户端程序)间的相互通信。ElectroServer 是创建多人 Flash 交互内容时采用得最多的
Socket 服务器之一。
本章中,我们将介绍一些服务器的概念和特别针对 ElectroServer 的专用术语,同时也将教
你如何安装 ElectroServer 以及如何编写简单的 hello world 程序。另外,我们还将考虑如何使用
基于网页的管理系统来配置 ElectroServer。
最多可有 25 个连接用户(同时在线)免费且不受限制地使用 ElectroServer。你可在 http://
.com/ 下载并安装它。
关于服务器的一些概念
本节中让我们来看看 ElectroServer 的一些概念和专用术语。其中多数都很流行且适用于其
他服务器。通常在很多 Socket 服务器解决方案里都会出现这些概念,所以这里叙述的概念也有
助于我们学习 ElectroServer 之外的其他服务器。
用户
用户指的是连接到(且登录进)服务器端的客户端。一个客户端可能会与服务器端建立不
止一个连接,但其仍被认为是单个用户。因此我们要注意,尽管用户到服务器端经常只有一个
连接,但他有可能会和服务器端建立起不止一个连接(见图 4-1)。例如,如果要从服务器端传
递视频流给一个使用 ElectroServer 的客户端的话,用户就得另建一个用来处理语音/ 视频流的
连接。
注意“用户”这个术语贯穿于本书始末,但其含义稍显笼统。参照上下文语境,它可能
是指连接到服务器端的客户端,此时它用来取代“客户端”这个术语;或者是指
正在操纵客户端的人。
关于服务器的一些概念 23
ޜခഗ܋
ਜ਼ࢽ܋
ਜ਼ࢽ܋
ਜ਼ࢽ܋
图 4-1 客户端连接到了服务器端,请注意,其中一个客户端和服务器端建立了不止一个连接
房间
房间是 Socket 服务器领域中的一个常见概念,它指的是用户的集合(如图 4-2 所示)。在
ElectroServer 中,借由房间这种载体,一个用户到多个用户间可以相互查看并进行互动。假如
用户在房间里,他就可以给所有处于该房间内的用户发送聊天消息,然后该消息就会被广播给
房间中的所有用户。这只是关于房间的一个简单用途。单个用户可以同时在不同的房间中。
ᆩࢽ
ᇏૂཀ
ݝक़
ཐٷᆴဥ
ႎ࿕ཀ
图 4-2 各种房间
在 ElectroServer 中有以下两种类型的房间。
固有型房间。即使其内没有用户也将一直存在下去的房间。
动态型房间。为单次使用所创建的房间。如果此类房间内的用户数目降为 0,则表明所
有用户都已经离开该房间,那么该房间将被系统销毁。这也是最常见的房间类型。
房间有很多用途,最常见的两种就是促成聊天和聚众玩多人游戏。后续章节中我们再详细
探究它的这些常见用途。
区
区指的是房间的集合。区这个概念非常有用,它主要被用来组织管理服务器上众多的房间。
24 第 4 章介绍 ElectroServer
区内的每个房间都必须有唯一的名称。区内房间中的每一个用户都能获得本区中的房间列表。
每当房间列表变动时,用户都能自动订阅到更新后的房间列表。
如果房间列表很庞大或者非常活跃(服务器上不断地有很多房间被创建或被清除),那么已
连接的用户每秒要接受很多次更新信息,以至于根本做不到与房间列表同步更新。使用更多的
区有望解决这个问题(图 4-3)。
注意不同的区里可以使用相同的房间名字。
ᅃ൶ܾ൶
ᇏૂཀᆴဥཀ
ཐٷཐᆴဥٷᆴဥ
ཀۯႎ࿕ཀ
图 4-3
聊天
聊天是连接到 Socket 服务器上的用户们彼此间互动的主要方式。聊天信息是从一个用户发
送给其他用户的文本。就像在其他 Socket 服务器解决方案中一样,在 ElectroServer 中也存在公
开聊天消息和私密聊天消息。公开聊天消息指的是由用户发送给其所属房间内全体用户的聊天
消息。通常公开消息最终会显示在客户端的文本字段中,如图 4-4 所示。
图 4-4
注意关于“聊天”这个主题,我们将在第 5 章更详尽地论述。
关于服务器的一些概念 25
私密聊天消息指的