对于FastHttpApi来说搭建一个基于Websocket的页面聊天室是一个非常简单的事件;毕竟基于FastHttpApi编写的接口默认就提供了WebSocket支持,因此在做基于Websocket通讯应用的时候和传统ajax数据交互应用没有多大的差别;以下讲解如何实现一个聊天室和管理功能。
功能描述
用户功能,主要功能:登陆,创建房间,进行房间,发言和查询房间用户信息
管理功能,主要功能:查看所有用户的发言进出房间情况,删除房间,踢用户下线
功能原型图
用户功能实现
用户功能不多,登陆、创建房间、进入房间、发言和查询房间用户功能。在传统的网络服务中编写起来可能有点因难,但在组件的支持下和传统web api没有两样。可能有人员会有点疑惑,毕竟web服务的api是无法向其他用户主动发信息,但在FastHttpApi则是可以的。接下来我们看一下这几个功能的API代码。
用户登陆
public bool Login(string userName, IHttpContext context)
{
context.Session.Name = userName;
if (context.Session.Name == "admin")
lock (mAdminList)
mAdminList.Add(context.Session);
return true;
}
登陆功能很简单提交昵称即可;由于是示例这里就不作太多安全性的处理,当用户名是admin就直接加入到管理员列表中了(在管理员列表的用户是可以接收其他用户的发言信息)。`
创建房间
public object CreateRoom(string roomName, IHttpContext context)
{
roomName = roomName.ToLower();
if (mRooms.Count > 200)
return new ActionResult(503, "房间已经满,不能再创建");
if (mRooms.ContainsKey(roomName))