// 这部分代码涉及到和applet配合的相关动作和页面部分的操作
var g_TalkSwitcher = true;
var g_TalkLine_Count = 0;
var g_TalkBuffer = "";
var mode = "text";
var channel;
var isBold = false;
var isUnderLine = false;
var frontcolor=1;
var inputvalue;
var MyNick = "";
var SessionKey = "";
var IgnoreString = "";
var TalktoFullNick = "";
var RightClickNickName = "";
var picnames=new Array(38);
var picfiles=new Array(38);
var actioncommands = new Array(17);
var actiondetails = new Array(17);
var bodyloaded = false;
var imgFlash = new Image();
var imgStill = new Image();
var KeepQuietLevel = 0; // 0 接收一切消息;1 一级免打扰;2 二级免打扰
imgFlash.src = "images/mail00.gif";
imgStill.src = "images/mail01.gif";
var isQuit = false;
parent.document.title = "〖testChat〗xxxxx聊天室";
window.defaultStatus = "〖testChat〗欢迎来到我们的网上交流空间!";
function OnRightClick()
{
if ( RightClickNickName != "" )
OpenNewWindow(RightClickNickName,"/user_info.asp","userinfo" ,300,310);
return false;
}
function OnGetNick(NickName)
{
if ( NickName.substring(0,1) == "@" )
RightClickNickName = NickName.substring(1) ;
else
RightClickNickName = NickName ;
return false;
}
function OnOutNick(NickName)
{
RightClickNickName = "" ;
return;
}
function OnClickNickName(NickName)
{
//针对指定的NickName进行处理
server push最大的好处是节省cpu资源,如用“循环..休眠..继续循环”的方法的话太浪费资源,因为这样的话等于每个用户连接都是一个线程。而我作的那个仅仅用了一个线程就实现了!就是有消息时遍历所有用户连接并轮发消息,没消息时则挂起 -- 几乎一点CPU都不耗,连接也都不断。用jsp一类的脚本语言根本无法实现。
其实"推技术聊天室"最难得地方就是和BROWSER通信的部分可以说,就是个小的WEBSERVER,而使用APPLET就可以很方便的做出"类似于推技术的聊天室",因为后者是基于TCP/IP的而前面说的是基于HTTP的,比如说你怎么能读取用户在FORM中发来的数据呢!!?(POST方式)又怎么样读取用户的信息呢!?我指的是类似于JSP中的SESSION(这点还是比较好解决的),所以基于以上的原因,很多大的网站都是用APPLET和SERVER通信的,比如SOHU,网易!
to: joyplay(想吃老虎的小猪)