flash media server是一个不错的流媒体服务器,跟flash/flex结合能做出比较丰富的应用,能让现有的网络表现模式增色不少,毕竟有视频了嘛。可惜现在网上的教程都比较简单。最近正好做了一个基于fms的客服系统,有不少值的借鉴的常规应用,但是一个个分开写有点只见树木不见森林的感觉,索性就全部拿出来晒晒了,正好也能整体地展现一下fms应用。
一般的网站上的客服系统跟聊天的差不多。现在多了FMS(我们有多媒体了啊),简单的讲就多了视频这一块。首先我先来分析一下系统结构:既然是客服,那无非就两类人:用户和客服MM:),他们各需要一个客户端系统(两者是不同的,后面讲到),另外还要一个服务器FMS和服务器脚本。好了,下面来简单分析一下它们需要哪些功能。
软件嘛无非就是给人方便,所以我觉得设计的一个重要原则就是,模拟现实。:-),在线客服跟普通的相差不大,比如,设置几个服务电话啦,轮流(换班)接听啦,等等,反应在系统结构上,就是多个服务方(0到多个)和多个客户方(0到多个)的关系,而且一个服务方对应多个客户方,但是一个客户方同一时间只对应一个服务方。所以这是一个1对多的关系。另外我们还需要考虑一些特殊情况,比如没有客服MM在线咋办呢(当然不能提供客服了),有多个客服MM(初始选择方式,还要可以切换哦)。我们还应该考虑到,服务方应该有更多的权限,比如踢人:-)。下面我来罗列一下需求。
客户方:
- 发送文字信息(包括一些文字类型的指令,比如改名字)
- 接收视频音频
- 得到所有客服人员的信息,并初始指定好一个客服人员(接收他的视频)
- 切换客服人员
客户方可能得到的事件:
- 接到文字信息
- 正在对话的客服人员断线或者离开(这需要自动切换客服人员,如果没有,就断开FMS连接)
- 更新客服人员信息(比如其他客服人员上线或者离开了,当然你的客服人员在,否则适用上面一条,或者切换了客服人员)
- 系统故障,断开连接
- 拒绝连接(有可能连接人数太多或者别的原因)
服务方:
- 以客服人员身份登录(客服人员必须要有唯一性,而且分别对应一条视频流)
- 发送文字信息(群发或者单独对某个人讲,因为可能同时有几个客户)
- 得到客户名称列表
- 踢人(针对某个客户的)
- 调节音量
- 广播视频(需要摄像头麦克风)
服务方可能接收的事件:
- 接收到文字信息
- 更新客户名称列表(可能是某客户断开或者上线,或者切换/离开这里了)
- 登录验证错误
- 系统错误,断开连接
先写到这里了,下面一篇介绍FMS脚本的开发,服务器脚本是整个系统的中枢,下一篇将把这一篇的大部分功能连在一起,从整体角度来阐述系统结构。
|