常问问题

常问问题

 

一室多房“超线程”是怎么回事?... 1

聊天室对机器和带宽要求如何?能在租用的空间上使用吗?... 2

如何设置管理员和进入管理状态?... 2

聊天室的脚本配置是怎么回事?... 3

聊天室的视频质量不是很好,怎么改进?... 3

为什么在测试时我的视频出来一次就不再出来了?... 4

聊天室声音断续经常卡麦怎么办?... 4

聊天室的麦克风是怎么传递的?... 4

多视频、多语音是怎么操作的?... 5

如何在聊天室中播放音乐?... 6

RH9下使用时出现不明提示是什么意思... 7

如何进行MYSQL的安装?... 7

Windows版用-run参数来运行时出现”Insert record error”提示怎么办?... 7

Windows版使用管理后台时出现无法读写文件或者数据库的提示怎么办?... 8

Windows版使用管理后台时出现“Server.CreateObject失败”错误提示怎么办?... 8

如何更换视频的默认图片?... 8

如何设置视频掩版?... 9

如何默认弹出远端视频窗口?... 9

管理员如何加临时管理?... 9

如何禁止直接用域名加端口访问聊天室?... 9

如何在域名还没有解析的情况下进行软件测试?... 10

为什么聊天室服务启动很慢并且启动以后又会回到停止状态?... 10

如何把礼物点数和视频点数合一?... 10

 

一室多房“超线程”是怎么回事?

 

如果您是一位系统管理员,可能就设置过“虚拟主机”,在一个80端口上提供多个域名的WEB服务,使得看起来像是多台WEB SERVER。但实际上这些虚拟主机是公用同一个IIS或者APACHE进程的资源的。聊天室一室多房“超线程”的概念与“虚拟主机”类似,可以在一个聊天室(对应于一个端口号、一个服务进程)中开设多个房间,使得一个聊天室看起来像多个聊天室。这些房间共享整个聊天室的资源,弹性分配容量。

例如您可以购买 11000人容量的聊天室,分拆成 10 100人的房间使用,或者分拆成2200人和6100人的房间使用,只要总的在线人数在1000人以下怎么分配都可以。你甚至可以开 10个子房间,把每个子房间的最高人数都设置成300人,在真正运行的时候由于不是所有房间都会满员,所以总人数可能不到 1000,这样就可以让你看起来象是拥有了 10300人的聊天室。充分利用您购买的所有容量,不会由于单个聊天室没有塞满人而出现浪费。默认情况下一个聊天室最多可以开 10个房间。

每个子房间可以有不同的房间名、版面配置、管理员设置和最高在线人数,而其他设置如“是否允许图音显示”、“EMOTE定义”等不能独立设置。在“ini”或者“cfg”文件中把各个子房间的房间名用“TITLE.0TITLE.1TITLE.2......”的形式列出来。各个房间的最大容纳人数表示则为“MAXNUM.0MAXNUM.1MAXNUM.2......”。而三个模板文件和管理员设置文件则不需要这么麻烦,只需要在同一个目录下放上“top.htm.0top.htm.1......”之类的就会自动采用,如果相应序号的文件不存在则自动用回默认的。例如房间序号为8的子房间会自动使用模板文件“top.htm.8body.htm.8bottom.htm.8adminpass.txt.8”,假如“top.htm.8”不存在,则会自动使用“top.htm”。

那么如何区分登陆这些聊天室呢?只要在登陆的参数中加入“ROOMID”就可以了。用户登陆的界面需要用“GET”或者“POST”的方式传入几个参数,如:

USER=abc&PASS=xxx&ROOMID=0

其中的ROOMID就指明要登陆那个房间了。如果与该ROOMID号对应的房间不存在或者没有设置,则自动转向默认的“ROOMID=0”的房间。

 

聊天室对机器和带宽要求如何?能在租用的空间上使用吗?

聊天室可以运行在普通的PC服务器上,采用WINDOWS或者LINUX操作系统均可。一台P4/2.4G CPU的机器可支持2000人以上同时在线不成问题。服务器的内存最好在512M以上, 1G更佳。在实际应用中,一台双P4/2.4G CPU的机器支持人数高达3000~5000人。

单个聊天室的最大容量为 1000人。如果在同一台机器上要支持更多的用户,可以开设多个聊天室,例如您可以开31000人的聊天室,或者 10300人的聊天室。

每个在线用户的语音需要 15K带宽,视频需要28K带宽(为更好质量可以调至64K128K或更高)。因此理论上每用户需要带宽50K左右。在实际使用中,由于并非所有用户都同时使用语音和视频,统计下来大约每用户消耗20K带宽,也就是说 1000人约需20M带宽。总之带宽的使用量视实际应用情况而变。

聊天室是以独立的程序来运行的,它本身就是一个精巧的WEB SERVER,并不依赖其他WEB SERVERIIS或者APACHE来工作。但是你可能需要在其他WEB SERVER上放置登陆页面或者配置脚本。

聊天室不能在租用的虚拟主机上面运行,你需要拥有自己的服务器或者拥有在服务器上运行独立程序的权限才可以。

如何设置管理员和进入管理状态?

聊天室的管理员密码和登陆密码是两回事。登陆密码存放在用户的验证数据库。管理员密码存放在管理员配置文件如:adminpass.txt中,该文件在聊天室的配置文件(ini或者cfg文件)中指定。因此采用管理员密码登陆聊天室是不会自动进入管理状态的。正确的做法是:先用管理员的名字和管理员的登陆密码登陆聊天室,然后在聊天输入框中输入"//ADMIN",注意是大写的,发送以后系统会提示你输入管理员密码,请在弹出的窗口中输入密码就可以进入管理员状态了。也可以直接在聊天发言输入框输入“//ADMIN xxx”(其中“xxx”是管理密码)来进入管理。

在管理员设置文件adminpass.txt中可以给管理员设不同的权限,方法是:

管理员名字|管理员密码|级别

每个管理员一行,如果设置注册用户为管理员,那么在设置中的"管理员名字"前面也要加上"*"号。级别为 1~99级为最高。

1级管理员,可以递麦、收麦、禁言、禁音,临时管理属于1级管理;

2级管理员,可以递麦、收麦、禁言、禁音、禁止/允许公私聊、白板管理、踢人名;

3级及3级以上管理员,可以递麦、收麦、禁言、禁音、禁止/允许公私聊、白板管理、踢人名、踢IP,可以设置临时管理员。可以下管同级别或者比其低级别低的管理员。

4级以上管理员可以关门、开门、设置和取消入室验证码。

下一级的管理员不可以踢上一级的管理员,但是同一级别的管理员可以互踢。

注意:管理员的名字中不能包含一些特殊字符,例如16进制码包含0x1a0x7c的字符。这是由于0x1aCtrl+z,被判断为文件的结束;0x7c“|”,用做管理员名字和管理密码的分隔符。对于名字中包括繁体字、异体字和某些特殊字符的情况尤其应注意该问题。

 

 

聊天室的脚本配置是怎么回事?

       可能你看到别人的聊天室版面都是五彩缤纷的,而你自己的却那么朴素,怎么办?答案在于使用脚本配置。

聊天室软件采用模板文件来配置界面,整个界面的表达是由top.htmbody.htmbottom.htm三个模板文件来掌管的,只要改变这三个文件就可以得到不同的聊天界面。但这三个文件中也包含了一些聊天室正常运行必备的配置,如果改乱了,聊天室的版面可就乱套了。因此不建议直接对这三个文件进行更改。为了达到自由配置的目的,在模板文件中标注有“在这里加入版面设置脚本….”的位置,只要您在那里加入配置脚本就可以完成配置了。脚本的方式如“<script src=http://…./config.js></script>,注意后面的那个“</script>”不要漏了写。

配置脚本是用javascript编写的文件,用于改变聊天室界面的显示和添加功能。脚本全部来自于网友的创作,表达形式丰富,有很鲜明的个性,因此我们不统一提供,如有必要,请到技术论坛(http://bbs.bluesky.cn)下载和交流。

 

聊天室的视频质量不是很好,怎么改进?

在广播方式下,一个人的视频要传给所有人是通过服务器的反射来进行的,这对服务器的带宽要求比较高,有多少人在线,服务器的带宽就需要多少倍。因此聊天室默认采用一个非常低的码流来传送视频信号,这是,视频质量不可能很高。

如果你的聊天室人比较少,同时带宽也比较充裕,那么可以通过模板文件top.htm中的配置来提高视频的码流。改视频控件的“quality”、“DefaultFrameRate”两个param来设置你所需要的视频质量和帧速率。详见《技术文档》。

默认情况下,视频窗口的大小是 176x144,你可以在设置中选择“大”的视频模式,那样窗口大小就是352x288。如果你要把视频窗口的大小改成默认就是大的,可以把top.htm中的“setTimeout("this.v2.document.V2.FrameType=1;",500);”改成“setTimeout("this.v2.document.V2.FrameType=2;",500);”就可以了。

如果在网络丢包比较多的情况下使用UDP模式可能会出现较多的马赛克现象,换成TCP模式运行可以有效缓解这种现象。

 

为什么在测试时我的视频出来一次就不再出来了?

在一个人调试聊天室时经常有人反应这个问题。这是由于聊天室的视频是跟随语音进行切换的,当前谁说话就显示谁的视频。但是语音一般是断续的,而视频一般要求是连续的,因此软件设计成如果是同一个名字说话,视频就不进行切换。不然的话,你的声音顿一顿,图像也顿一顿,那就不好了。在你调试聊天室的时候,可以会用同一个名字进去,这样就会出现第一次出来视频,而以后不出来的问题了。解决的办法很简单,就是换个名字进去。在实际使用中,大家轮流说话,或者递麦说话,不存在这个问题。

 

聊天室声音断续经常卡麦怎么办?

引起声音断续的原因基本上是两种:

一是由于服务器的网络连接带宽不足,在人多的时候数据传送丢包,这样出现声音断续的现象是必定的,只有改善带宽条件才有可能解决。你可以通过ftp一个大文件来测测带宽,看看是不是这个原因。一般来说每个人的语音需要大约 15K带宽, 100人同时在线语音就需要 1.5Mb/s的带宽了。同时别忘了考虑视频以及其他WEB应用的带宽占用哟。

二是由于聊天室的在线列表刷新消耗客户端浏览器的资源。现在许多聊天室采用了复杂的脚本配置,这会一定程度上消耗客户端CPU资源,如果对在线列表进行了复杂的改写,那么这种消耗资源会更大。在线人数越多,在线列表越长,消耗越大。在实际测试中,250人在线的情况下,在线列表刷新的时候,CPU消耗可高达90%以上。CPU处理能力不足就会引起声音断续。为解决这种情况引起的问题,聊天室采用了手动刷新列表的方案。在人数较少的时候,列表是自动刷新的;当人数超过一定值(这个值可以在top.htm中的” autorefresh_threshold”设置)时,列表不再自动刷新,如果你需要查看最新在线情况,只要点一下“刷新列表”按钮就可以了。你可能会发现在点这个按钮的时候声音会断一下,同时CPU消耗猛增,这也就是我们设置这个功能的根本目的了。如果你自认为自己的CPU足够强劲,不怕在线列表刷新的影响,同时也希望在线列表能够自动刷新,那么就把按钮旁边的“自动”打上勾好了。

 

聊天室的麦克风是怎么传递的?

聊天室同时只能一个人进行广播发言。在“自由抢麦”的方式下,一个人如果连续不断的说话,那么他的麦克风就不会被其他人抢走。但假如他停顿 1秒钟以上,其他的发言者如果在此停顿期间说话了,那么就可以把麦克风抢过去。在“管理员递麦”的方式下,管理员可以随时切断某个人的发言并把麦克风递给另外一个人,被递麦克风的人在发言期间停顿8秒以内麦克风也不会被其他人抢走。因此如果需要有序的管理聊天室的发言,建议使用“管理员递麦”的工作方式。

在聊天室的配置ini或者cfg文件中可以对这两个时间间隙进行设置,分别是:

 

TRANSFERGAP=[管理员护麦方式下麦克风在聊友手中的空闲停留时间,默认为8秒。也就是说管理员把麦克风递给某个人以后,这个人8秒内不说话麦克风也不会被其他人抢走]

NORMALGAP=[自由抢麦方式下的麦克风空闲停留时间,默认为1秒。也就是说在自由抢麦的时候如果1秒钟不说话麦克风就有可能被其他人拿过去]

 

此外聊天室语音还有一种方式是“全双工对话”,两个人建立双工连接,可以同时发言和聆听,不受麦克风传递的影响。

 

多视频、多语音是怎么操作的?

聊天室支持同时显示多个人的视频。点击某个允许“查看”的人名字后面的眼睛符号,就可以显示这个人的图像在其他窗口。重复点一次则关闭查看窗口。

聊天室的麦克风分为“主麦”和“附麦”,“主麦”只有一个,其它都是“附麦”。“远端”视频窗口的图像跟随“主麦”变化,谁掌握“主麦”就广播谁的图像。

 

语音控件的按钮控制说明如下:

左边竖条:当前输出音量的大小显示

右边竖条:当前录入音量的大小显示

中间列表区:第一行为掌握主麦者名字,后面依次是各付麦掌握者名字

左下对勾框:是否输出声音控制

右下对勾框:是否录入声音控制,在发言前请勾上此框

中下对勾框:是否放歌控制。在多人发言时请不要勾上,避免造成回响。

左下滑动条:调节输出音量大小

右下滑动条:调节录入音量大小

中下滑动条:调节声音输出缓冲区大小。在对话的时候请设到最左边,避免说话延时太长,在听别人放音乐时可以右移,增大声音缓冲区,避免声音断续。

 

语音的几个按钮功能说明如下:

拿麦:拿起麦克风。如果当前还有麦克风是空闲的,点这个按钮可以把麦克风拿过来。该功能只在“自由抢麦”的模式下有效。如果当前有管理员护麦,则只能向管理员申请要麦。

放麦:释放麦克风。发言完毕,把麦克风让给其他人。

过滤:由于是多路混音,有时比较嘈杂,如果你不想听某个人的声音,可以先选择其名字,然后点“过滤”,就不会再听到了。但这个过滤只是阶段性的,如果经过麦克风传递切换过程以后失效。

双工:与某个人建立双工的语音对话,也就是语音私聊。

以下是管理功能,只对管理员有效。

:把主麦克风,也就是远端广播图像随之改变的麦克风递给某个人。

:递附麦克风。

:把麦克风收回。你可以直接点语音控件中的名字选取对象。

:选择对象以后,把该对象当前所掌握的麦克风切换给管理员自己。相当于同时完成收麦并递麦给自己的过程。

F:进入“自由抢麦”状态。在聊天室没有管理员的时候,语音控制是通过“自由抢麦”的方式进行的。但只要有管理员进行了一项语音管理操作,聊天室就进入“管理员护麦”状态,所有麦克风的传递需要通过管理员进行。管理员可以按“F”按钮使聊天室回到“自由抢麦”状态。

 

如何在聊天室中播放音乐?

在聊天过程中有两种方式可以播放机器上的音乐。一是采用立体声混音的办法,把机器当前的所有声音都播放出去。把语音控件上的中间“放歌控制”的对勾打上即可。这种办法实时性比较好,与麦克风录入声音比较同步,适合于卡拉OK伴奏。但是在多人聊天的情况下会引起很大的回音,干扰正常聊天。另一种办法是使用播放器插件,直接从音乐播放器读取声音到聊天室,这种方法没有回音的问题,但是同步稍差,适合于背景音乐播放。具体办法如下介绍。

Windows Media Player聊天室放歌插件安装办法:

1、  下载安装最新的语音控件,下载地址为:http://www.bluesky.cn/download/bluesky.exe

2、  下载安装Windows Media Player聊天室放歌插件,地址为:http://www.bluesky.cn/download/bchat_wm.exe

3、  在播放器的配置选项种选择使用该插件。如图:

4、配置完成以后用Media Plsyer播放立体声的 16Bit的音乐文件就可以自动传送声音到聊天室。

 

WINAMP聊天室放歌插件安装办法:

1、  下载安装最新的语音控件,下载地址为:http://www.bluesky.cn/download/bluesky.exe

2、  安装最新的WINAMP音乐播放软件。在每个软件下载网站都可以找到该软件。

3、  下载WINAMP的聊天室插件,下载地址为:http://www.bluesky.cn/download/dsp_bchat.dll

4、  把插件dsp_bchat.dll放置到WINAMPplugins目录,一般为:C:\Program Files\Winamp\Plugins

5、  开启WINAMP,进行配置。选择菜单:OptionsàPreferences,到 Plug-insàDSP/Effect,选择“Bchat broadcast plugin for Winamp ”即可。如图:

6、  配置完毕,用WINAMP播放音乐就可以送到聊天室中去。


本方法可以良好的消除回音带来的困扰,但在声音同步方面不如混音的办法。适合于播放背景音乐,不适合于同步演唱。

 

RH9下使用时出现不明提示是什么意思

            LINUX版的软件是在Redhat7.3下编译的,在Redhat9.0下使用时会出现类似“Incorrectly built binary which accesses errno, h_errno or _res directly. Needs to be fixed.”的提示。这只是编译器版本不同引起的提示,不影响正常使用,也不会影响系统性能。

 

如何进行MYSQL的安装?

       可以参看http://www.bluesky.cn/installmysql.html

 

Windows版用-run参数来运行时出现”Insert record error”提示怎么办?

       打开数据库/bchat/db/chatdb.mdb,打开表格room,将其中记录的”host”项改成你要设置的域名或者IP。也可以将整条记录清除。再尝试用-run来运行。

       引起这个问题的原因是:曾经用其他域名或者IP例如127.0.0.1运行过聊天室,当改域名时被认为是不同的聊天室而需要加入新的数据库记录。但是相同端口的聊天室已经存在,所以出现插入数据库记录错误。

       另一个解决办法是采用其他端口来运行聊天室。

 

Windows版使用管理后台时出现无法读写文件或者数据库的提示怎么办?

     管理后台的作用是往数据库中添加或者更改聊天室的记录,从模板文件生成每个聊天室对应的配置文件。由于IIS默认是以一个级别很低的用户来运行的,因此需要把整个/bchat目录都设置成everyone可读写的。

 

Windows版使用管理后台时出现“Server.CreateObject失败”错误提示怎么办?

     如果是“Server.CreateObject("bchatcontrol.bchatservice")”出错,首先看看在“bchat”目录下是否存在文件“bchatcontrol.dll,不存在的话需要重新安装一次以解压出该文件,如果存在,请在命令行下到“bchat”目录运行“regsvr32 bchatcontrol.dll,然后再测试问题是否解决。如果问题依然存在,则可能是组建的权限问题,请尝试更改权限如下:运行“regedit,查找“HKEY_CLASSES_ROOT”下的“Bchatcontrol.bchatservice”项,点鼠标右键,设置权限,给它加上“Everyone”或者IIS的运行用户“完全控制”就可以了。

       如果是“Server.CreateObject("ADODB.Connection")”或者“Server.CreateObject("ADODB.RecordSet")”出错,也可以用类似的权限设置方法来尝试解决。

 

如何更换视频的默认图片?

       在没有视频图像的时候,视频小窗口默认显示“蓝天白云”图片。系统管理员可以将此图片更换。方法是:

1、  首先找一副大小为176 x 144.gif或者.jpg图片放到一个可以通过http访问的地方,例如:http://chat.xxx.com/xxx.jpg

2、  用文本编辑器打开template/template_top.htm,查找:

this.v2.document.writeln("  <param name=\"WaitImgUrl\" value=\"\">");

将其改成:

this.v2.document.writeln("  <param name=\"WaitImgUrl\" value=\"http://chat.xxx.com/xxx.jpg\">");

如果没有找到该项,直接添加亦可,查找:

this.v2.document.writeln("  <param name=\"iframe\" value=\"10\">");

然后直接在其下面添加一行:

this.v2.document.writeln("  <param name=\"WaitImgUrl\" value=\"http://chat.xxx.com/xxx.jpg\">");

3、  template的修改要重新配置聊天室才生效。请到管理后台重新配置一下聊天室,就可以产生新的模板文件覆盖到聊天室端口目录中去。

 

如何设置视频掩版?

     如果你想给所有用户设置一个默认的视频掩版,可以用以下方法:

1、              先制作一副大小为176 x 144的掩版图片。如果是.gif图片,请把需要透过的部分颜色设置成RGB(255,0,255)。如果是.jpg图片,则把需要透过的部分颜色设置成RGB(0,0,0)。对于.gif类型的掩版,叠加方式是不透明叠加;对于.jpg类型的掩版,叠加方式是透明叠加。动画型gif的动画不起作用,只有第一帧有效。

2、              把图片放到某个可以通过http访问的地方,例如:http://chat.xxx.com/mask.jpg

3、              用文本编辑器打开template/template_top.htm,查找:
this.v2.document.V2.SetMaskImg("");
将其改成:
this.v2.document.V2.SetMaskImg("http://chat.xxx.com/mask.jpg");
如果该行没有找到,直接将该行添加到函数“setvideoinitstate()”中即可。

4、              将视频插件的版本号改成至少“8,1,1,8

5、              用户也可以自己调用“SetMaskImg”函数来更换掩版。如果是使用本地文件,其参数用file://c:/mask.jpg 样式的URL即可。

 

如何默认弹出远端视频窗口?

       如下操作:

1、  用文本编辑器打开template/template_top.htm,查找:

setTimeout("this.v2.document.V2.RemoteShow=false;",1000);

将其改成:

setTimeout("this.v2.document.V2.RemoteShow=true;",1000);

2、到管理后台重新配置聊天室使生效。

管理员如何加临时管理?

       3级或者3级以上的管理员可以拉临时管理。操作方法为:

       选定操作对象的名字以后,输入命令“//ADMIN add”即可。如果要下管某个人,则选定名字以后输入命令“//ADMIN del

       如果不希望开放临时管理功能,在聊天室配置项中加上:ALLOWTEMPADMIN=0

 

如何禁止直接用域名加端口访问聊天室?     

       默认情况下可以直接用域名加端口访问聊天室的登录页面,该登录页面由聊天室服务端直接输出,其内容是无法更改的。如果要禁止出现该页面,可以用配置项:

              LOGINURL=[错误登录时重定向到该URL]

       template_port.ini中加入一行为该配置项,例如:

              LOGINURL=http://chat.xxx.com

       然后重新配置和启动聊天室,那么直接输入域名加端口访问就会自动跳转到页面http://chat.xxx.com上去。

如何在域名还没有解析的情况下进行软件测试?

聊天室软件是绑定域名和端口授权的,因此如果在服务器上还不能正确解析所绑定的域名则软件无法运行。如果需要在域名解析完成之前进行软件测试,可以用如下办法:用文本编辑器打开文件“windows\system32\drivers\etc\hosts”,在该文件的某尾加上一行IP与域名的对应,例如服务器的IP为:192.168.1.1,软件绑定的域名为:chat.xxx.com,则加上一行:

192.168.1.1 chat.xxx.com

为什么聊天室服务启动很慢并且启动以后又会回到停止状态?

如果检查各项配置都正常或者聊天室本来运行正常突然出现这个问题的话,很可能是由于服务器无法正常解析所绑定的域名引起的。如果在服务器上过滤了所有UDP包,或者设置了某些防火墙软件对UDP包进行了拦截,那么服务器的域名解析将不能正常工作,这样服务器也就无法认识所绑定的域名了。可用如下办法解决:用文本编辑器打开文件“windows\system32\drivers\etc\hosts”,在该文件的某尾加上一行IP与域名的对应,例如服务器的IP为:192.168.1.1,软件绑定的域名为:chat.xxx.com,则加上一行:

192.168.1.1 chat.xxx.com

 

如何把礼物点数和视频点数合一?

聊天室有三种点数控制方式,一为在线点数控制,一为视频查看点数控制,第三种为礼物点数控制。在默认设置下,三种点数各自独立计算。点数的扣除和查询是通过dbd访问数据库来进行的。dbd访问数据库的查询语句在dbd目录下的"language.txt"文件中定义,如果您需要把点数合一,只需要改动该文件中的查询语句,然后再重新启动dbd服务即可。dbd服务在windows下为"bchat_11433"
   
例如你把"language.txt"中的所有"videopoint"替换成"giftpoinit"(注意别把"videopointmonthly"里面的文字也给换了,那是另外一个数据表字段),那么视频查看的点数也从礼物点数中扣取了。

如果改变聊天室中所显示的表情图标的大小?

表情图标是由模板文件template_top.htm中的函数“face(no) ”、“u_face(no)”及“u1_face(no)”来显示的。改变这三个函数中的“img”大小定义,指定使用你所想要的“width”和“height”而不使用原来的“obj.img.width”和“obj.img.height”即可。如指定大小为20x20,则用:

tmp="<img src='"+obj.img.src+"' border=0 width=20 height=20 alt='"+obj.alt+"'>";