VP Conference

自定义 VP

本节包含自定义 VP 系统的信息。包括房间界面、客户端行为。还包括关于挂接现有的用户注册数据的信息。

配置房间界面
了解如何设置房间默认界面配置。了解如何自定义房间界面的结构。
挂接代号数据库
了解如何在 VP 中使用原有的用户数据库。

配置房间界面

设置房间默认界面配置

用户申请的房间如果没有上传自定义的房间配置代码,将会使用 VP 网站提供的默认房间代码。网站可以根据自己的风格编写界面代码供没有自定义房间配置的用户使用或禁止房间上传配置以提供统一的房间界面。

VP 房间配置包含“发言框HTML代码.htm”,“公开聊天内容框HTML代码.htm”,“私人聊天内容框HTML代码.htm”,“用户列表框HTML代码.htm”,“roomuitemplate.html”5 个文件。在 ./config/roomui/ 子目录下可以找到这些文件。其中,用户可以自定义除“roomuitemplate.html”之外的四个文件。建议不要更改“roomuitemplate.html”。网站可以将编写好的网站默认配置拷贝到上述路径覆盖掉原文件,然后在管理后台中执行清空缓存页面操作以更改默认房间配置。关于房间配置中各个文件以及如何编写房间配置页面的详细信息请参考房间页面配置帮助

更多...

如果您需要更改房间页面结构或者需要增加额外的功能,请查看相应文件中的代码。
roomlogin.aspx - 房间页面入口
roomuitemplate.html - 房间页面框架
xcore.js - 房间页面主脚本

返回页首

挂接代号数据库

VP Server 通过向指定的 Web Server 发送 http 请求的方式验证用户。挂接工作只需要根据现有的用户数据编写验证页面,然后在 VP Server 中设置验证 URL 即可。

编写验证页面

输入格式

VP Server 发送的 http 请求格式为:

http://VerifyURL ? RoomID = RID & UserID = UID & UserPass = UPW

其中:
VerifyURL 为指定的验证页面 URL;
查询字符串中,RID 为用户进入的房间的代号,UID 为用户代号,UPW 为前台输入的密码。

输出格式

当验证页面根据输入信息处理完后,将结果以类似于 ini 的格式返回。所需的参数如下:

startflag=1
roomid=RID
userid=UID
regstatus={NICK_REGISTERED,NICK_UNREGISTERED}
[nick]=NICK
[sex]=SEX
[age]=AGE
[province]=PROVINCE
[city]=CITY
[extra]=EXTRA
[error]=ERROR INFO
endflag=1

其中:
startflag 和 endflag 仅仅作为标记值,必须分别加在返回数据的头部和尾部。
roomid - 进入的房间代号,在 VP 附带的用户验证页面中使用,自定义的验证页面直接返回查询字符串中的 RoomID 即可。
userid - 用户代号。
regstatus - 用户的注册状态。必须是 NICK_REGISTERED(注册用户) 或 NICK_UNREGISTERED(未注册用户)。
nick - 用户昵称,在房间内查询用户信息时显示。(可选参数)
sex - 用户性别,在房间内查询用户信息时显示。(可选参数)
age - 用户年龄,在房间内查询用户信息时显示。(可选参数)
province - 用户所在省份,在房间内查询用户信息时显示。(可选参数)
city - 用户所在城市,在房间内查询用户信息时显示。(可选参数)
extra - 需要附加的额外数据,将会被 VP Server 发送到客户端,由房间页面脚本处理。
error - 错误信息,将会发送到客户端用以提示用户。如果验证失败或者验证过程中出现错误,在返回值中加入此项参数,当前用户将不能进入房间。

代码示例 - (C#)

下面的代码片断示范简单的用户验证流程。
其中函数 bool IsUserRegistered(string sUserID); 检查代号为 sUserID 的用户是否注册。
bool CheckUserPwd(string sUserID, string sUserPass); 检查密码是否正确。

// Example: The following code fragment demonstrate user verifying process that
// that check the password only.
string sRoomID = Request.QueryString.Get("RoomID");
string sUserID = Request.QueryString.Get("UserID");
string sUserPass = Request.QueryString.Get("UserPass");< BR >
string sOutput = "startflag=1";

sOutPut += string.Format("roomid= {0}\r\n", sRoomID); // 必须加入
sOutPut += string.Format("userid= {0}\r\n", sUserID); // 必须加入

if (sRoomID == null || sUserID == null) // 检查输入参数
{
    sOutput += string.Format("error={0}\r\n", "验证代号异常:参数无效。");
}
else
{
    if (sUserPass == null) // 用户未输入密码
    {
        sUserPass = "";
    }

    if (IsUserRegistered(sUserID)) // 是否注册?
    {
        if (CheckUserPwd(sUserID, sUserPass)) // 密码是否正确?
        {
            sOutPut += string.Format("regstatus={0}\r\n", NICK_REGISTERED);
        }
        else
        {
            sOutput += string.Format("error={0}\r\n", "密码错误。");
        }
    }
    else
    {
        sOutPut += string.Format("regstatus={0}\r\n", NICK_UNREGISTERED);
    }
}

sOutput += "endflag=1";
Response.Write(sOutput);


上面的代码验证通过后试图返回的数据为:
startflag=1
roomid=RID
userid=uid
regstatus=NICK_REGISTERED
endflag=1

验证未通过则返回:
startflag=1
error=...
endflag=1

设置验证 URL

用户验证页面的 URL 在管理后台的服务端配置中,详细信息请参见配置和管理服务器中设置代号数据库一节。

返回页首