韩剧1988免费观看全集_久久影视三级福利片_亚洲视频在线观看免费_在线观看欧美日韩_国产亚洲激情在线_亚洲精品美女久久久_欧美国产日韩一区二区在线观看_91在线观看免费高清完整版在线观看_日韩av免费看_国产又爽又黄的激情精品视频_琪琪亚洲精品午夜在线_欧美性猛xxx_不卡毛片在线看_国产亚洲日本欧美韩国_91国内在线视频_精品国产福利视频

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

無(wú)刷新的聊天室的制作兼談組件制作與ClientSide Script(一)

無(wú)刷新的聊天室的制作兼談組件制作與ClientSide Script(一)

更新時(shí)間:2022-06-07 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

我們?cè)趥鹘y(tǒng)的web程序當(dāng)中比較頭疼的一件事是屏幕的刷新感。雖然有server push的技術(shù),但在IE中較難實(shí)現(xiàn),F(xiàn)在webservice給了我們這樣一個(gè)機(jī)會(huì),大家都知道webservice是基于soap的,而soap是xml的應(yīng)用,如果你曾經(jīng)用過(guò)ms xml sdk3.0的話就會(huì)知道里面有個(gè)xmlhttp方法,其實(shí)在那時(shí)我們就已經(jīng)可以用xmlhttp的方式替代Form了,也是無(wú)刷新的,其實(shí)準(zhǔn)確地說(shuō)是局部刷新,下面我們來(lái)看一下怎樣做,先做一個(gè)chat webservice, 首先來(lái)分析一下,一個(gè)聊天室應(yīng)具備的兩個(gè)要素人和消息,這樣我們可以建立一個(gè)類型(記得我在以前說(shuō)過(guò)類也是類型),它包含這樣兩個(gè)要素。
///ChatMessage.cs
using System;

namespace chat
{
/// <summary>
/// ChatMessage類封裝了兩個(gè)string變量:UserLists--用戶列表,Messages--要傳遞的信息
/// </summary>
public class ChatMessage
{
public string UserList, Messages;
}
}
第二個(gè)我們要建立的是什么呢?一個(gè)聊天室應(yīng)能存儲(chǔ)在線成員的名字及訪問(wèn)時(shí)間
///Member.cs
using System;

namespace chat
{
/// <summary>
/// Member類為每個(gè)聊天者封裝了Server端的變量
/// </summary>
public class Member
{
// 存儲(chǔ)消息的隊(duì)列
public string UserName, MsgQueue;
// 判斷滯留事件以便踢人
public System.DateTime LastAccessTime;
// The constructor
public Member(string NickName)
{
this.UserName=NickName;
this.LastAccessTime=DateTime.Now;
}
}
}

接下來(lái)我們就應(yīng)該做這個(gè)asmx了
///ChatWebService.asmx
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;

namespace chat
{
/// <summary>
/// Summary description for ChatWebService.
/// </summary>
[WebService (Namespace = "http://localhost/chat/", Description = "This service provides an chat service")]
public class ChatWebService : System.Web.Services.WebService
{
public ChatWebService()
{
//CODEGEN: This call is required by the ASP.NET Web Services Designer
InitializeComponent();
}

#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
}
#endregion

/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
}

[WebMethod(Description="接收用戶名作為參數(shù)存儲(chǔ)到Application對(duì)象中")]
public string Login(string username)
{
// Ascertain that all the registered chat participants are active
CheckMembersList();
// Synchronization Lock
Application.Lock();
// Get the collection of keys for the Application Variables
String[] Members = Application.AllKeys;
// Are there any registered chat members? & the present request is for a unique nick name?
if ((Members.Length>0)&&(Array.IndexOf(Members,username)>-1))
{
throw new Exception("該用戶已存在!");
}
// Create a new Member object for this participant
Member NewMember = new Member(username);
// Add this new member to the collectionof Application Level Variables
Application.Add(username, NewMember);
// Synchronization unlock
Application.UnLock();
// Go and get the list of current chat participants and retrun the list
return GetMembersList();
}

[WebMethod(Description="GetMsg方法用用戶名和消息為參數(shù)返回一個(gè)ChatMessage對(duì)象,包括要傳遞的消息和用戶列表")]
public ChatMessage XchangeMsgs(string username, string Msg)
{
// Ascertain that all the registered chat participants are active
CheckMembersList();
// Synchronization Lock
Application.Lock();
// Get the collection of keys for the Application Variables
String[] Members = Application.AllKeys;
if ((Members.Length==0)||(Array.IndexOf(Members,username)==-1))
// Are there any registered chat members? & the present request is for a unique nick name?
{
throw new Exception("你當(dāng)前可能沒(méi)有登陸或登陸超時(shí),請(qǐng)重新登陸!");
}
ChatMessage RetMsg = new ChatMessage();

RetMsg.UserList = GetMembersList();
// Loop through all the Chat Participant's serverside Member Objects and
// add the message just received in their waiting message queue
for (int x=0;x<Members.Length;x++)
{
Member temp = (Member)Application[Members[x]];
temp.MsgQueue+=("<BR><Font color = Red>" + username + " 說(shuō):<BR></FONT><Font color = Blue>" + Msg);
if (temp.UserName == username)
{
RetMsg.Messages = temp.MsgQueue;
temp.MsgQueue="";
temp.LastAccessTime=DateTime.Now;
}
}
// Synchronization unlock
Application.UnLock();
return RetMsg;
}

[WebMethod(Description="GetMsg方法用username為參數(shù)返回一個(gè)ChatMessage對(duì)象,包括要傳遞的消息和用戶列表")]
public ChatMessage GetMsgs(string username)
{
Application.Lock();
CheckMembersList();
Application.Lock();
String[] Members = Application.AllKeys;
if ((Members.Length==0)||(Array.IndexOf(Members,username)==-1))
{
throw new Exception("Unknown User. Please Login with a UserName");
}
ChatMessage RetMsg = new ChatMessage();
RetMsg.UserList = GetMembersList();
Member temp = (Member)Application[username];
RetMsg.Messages = temp.MsgQueue;
temp.MsgQueue="";
temp.LastAccessTime=DateTime.Now;
Application.UnLock();
return RetMsg;
}

public string GetMembersList()
{
Application.Lock();
String UserList = "";
String[] Members = Application.AllKeys;
Application.UnLock();
for (int x=0;x<Members.Length;x++)
{
Member temp = (Member)Application[Members[x]];
UserList += (temp.UserName+"\n");
}
return UserList;
}

private void CheckMembersList()
{
String[] Members = Application.AllKeys;
ArrayList RemoveList = new ArrayList();
for (int x=0;x<Members.Length;x++)
{
Member temp = (Member) Application[Members[x]];
int test = (DateTime.Now.Subtract(temp.LastAccessTime)).Minutes;
if (test > 2)
{
RemoveList.Add(Members[x]);
}
}
// Users = null;
for (int count = 0;count<RemoveList.Count;count++)
{
Application.Remove((String)RemoveList[count]);
}
return;
}


 &nb

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
久久精彩视频| 972aa.com艺术欧美| 欧美日韩激情一区二区| 91在线最新| 国产香蕉免费精品视频| 精品嫩草影院久久| 国产成人91久久精品| 天天射天天干天天| 欧美成人一区在线观看| 国产1区2区在线| 91色九色蝌蚪| heyzo视频在线播放| 久久夜色精品国产欧美乱极品| 久久亚洲导航| 先锋av资源在线| 偷拍视频一区二区三区| 黑料不打烊so导航| 91九色蝌蚪| 欧美 日韩 人妻 高清 中文| 精品国产午夜福利在线观看| 99re6在线视频精品免费| 每日更新成人在线视频| 色综合久久综合网97色综合| 在线成人免费视频| 日本中文字幕电影在线免费观看| 国产99视频在线观看| 国产亚洲成aⅴ人片在线观看| 一区福利视频| 亚洲va天堂va国产va久| 日本一区二区三区视频在线| 伊人222成人综合网| 操操操干干干| 欧美人妖巨大在线| aa视频在线播放| 777.av| 国产美女视频黄a视频免费| 一边摸一边做爽的视频17国产| 天天干天天干天天操| 亚洲av综合色区无码一区爱av| 国产一卡2卡3卡4卡网站免费| 激情亚洲综合网| 中文一区一区三区高中清不卡| 日韩av片永久免费网站| 亚洲成人激情在线观看| 日韩精品一页| 久久精品欧美一区二区| 美女视频黄 久久| 国产美女一区二区三区| 日韩精品亚洲元码| 天天av综合网| 欧美日韩一区二区三区高清| 精品欧美一区免费观看α√| 免费一级a毛片| 性欧美长视频免费观看不卡| 加勒比综合在线| 日韩一区二区免费视频| 久久撸在线视频| 97中文字幕在线观看| 国产成+人+综合+亚洲欧洲| 国产成人av在线影院| 337p日本欧洲亚洲大胆鲁鲁| www.污网站| 久久青草免费| 国产精品一卡二| 日韩理论片在线| 荫蒂被男人添免费视频| 人人人妻人人澡人人爽欧美一区| 一区二区三区高清视频在线观看| 91麻豆精品国产91久久久平台| 自拍在线观看| 亚洲欧美中文字幕在线一区| 国产a级免费视频| 欧美特级xxxxbbbb毛片| 亚洲人成网站免费播放| 精品国内亚洲2022精品成人| 欧美黑人国产人伦爽爽爽| 李丽珍裸体午夜理伦片| 成人免费视频网站入口::| 成年人视频网址| 日韩一区日韩二区| 国产裸体歌舞团一区二区| 96av在线| 中文字幕视频一区二区| 中文字幕在线观看第一页| 亚洲啪啪综合av一区二区三区| 热99在线观看| 欧美电影《轻佻寡妇》| 成人h动漫在线| 丁香花在线观看完整版电影| 最新中文字幕一区二区三区| 欧美jizzhd精品欧美另类| 午夜免费入口| 国产极品尤物在线| 国产精品扒开腿做爽爽| 久久嫩草捆绑紧缚| 青娱乐一区二区| 色94色欧美sute亚洲线路二| 欧美日韩黄色一区二区| 男人的天堂av网站| 亚洲在线免费观看| 久久婷婷一区二区三区| 中文字幕久热精品在线视频| 欧美体内she精视频在线观看| 久久超碰97人人做人人爱| 亚洲成av人片一区二区三区| 手机看片国产日韩| 91亚洲欧美激情| 视频一区视频二区视频三区视频四区国产| 国产精品免费观看在线| 怡红院av一区二区三区| 无码人妻丰满熟妇区bbbbxxxx| 久久99热这里只有精品| 精品入口麻豆88视频| 国精产品一品二品国精品69xx| 精品一区二区91| 99久久精品国产一区二区三区| 日韩小视频在线播放| 亚洲最新视频在线| 人人妻人人爽人人澡人人精品| 影音先锋中文资源站| 美女视频在线免费| 中文亚洲av片在线观看| 国产原创中文在线观看| 亚洲人午夜精品天堂一二香蕉| 国产人久久人人人人爽| 国产成人久久精品一区二区三区| av电影在线观看一区二区三区| 欧美人与禽猛交乱配视频| 黄色国产小视频| 久久精品亚洲a| 美女网站在线观看| 日本不卡在线播放| 美女av一区| 日本丰满少妇xxxx| 久久国产精品一区| 中文字幕亚洲欧美在线不卡| 日韩高清免费在线| 国产精品v欧美精品v日韩| 免费一级做a爰片久久毛片潮| 免费久久一级欧美特大黄| 青青草精品视频在线观看| 手机av免费在线观看| 视频三区在线观看| 欧美在线国产精品| 在线观看欧美一区二区| 天堂av免费观看| 亚洲一区视频在线| 色香色香欲天天天影视综合网| 美女写真久久影院| 老司机精品久久| 啊v视频在线一区二区三区| 国产精品久久国产精麻豆96堂| 精品这里只有精品| 天天做天天爱天天综合网| 久久国产天堂福利天堂| 少妇性bbb搡bbb爽爽爽欧美| 国产精品51麻豆cm传媒| 老司机aⅴ在线精品导航| 一区二区三区四区欧美日韩| 91精品在线观看入口| 欧美一级日韩免费不卡| 国产精品久久一区主播| 久久精品久久精品国产大片| 亚洲精品66| 日本成人黄色网址| 日韩女优av电影| 免费yellow网站| 3344国产精品免费看| 国产www免费| 欧美一区三区| 亚洲一区二区影院| 亚洲一区二区日韩| 日韩精品电影一区二区三区| 欧美在线欧美在线| 欧美一区二区福利在线| 国产盗摄视频在线观看| 国产中文字字幕乱码无限| 黄色网一区二区| 成人黄色毛片| 一本大道熟女人妻中文字幕在线| 久久精品国产一区二区三| 免费高清在线观看电视| 欧美男男同志| 一根才成人网| 欧美伦理片在线观看| 丝袜美腿一区二区三区| 国产亚洲制服色| 大桥未久av一区二区三区| 91午夜伦伦电影理论片| 性xxxx欧美老肥妇牲乱| 老司机午夜精品视频在线观看| 欧美性猛交xxxx免费看蜜桃| 色多多国产成人永久免费网站| 中文字幕一区二区三区在线观看| 日本久久久久久| 日韩av高清不卡| av色综合久久天堂av色综合在| 国产一级视频| 国产伦精品一区二区三区视频黑人| 免费在线视频你懂的| 亚洲成a天堂v人片| 国产成人精品福利一区二区三区| 亚洲天堂男人天堂女人天堂| 国产白丝一区二区三区| 综合五月激情网| 久久久久久久亚洲| 久久久久99精品成人片三人毛片| 成年黄网站在线观看免费| 免费黄色的网站| 极品销魂美女一区二区三区| 国产精品观看| 日韩av日韩在线观看| 97色在线观看免费视频| 亚洲偷欧美偷国内偷| 久久久久久久久久久黄色| 国产精品美女一区二区| 成人毛片视频在线观看| 色欲色香天天天综合网www| 日韩欧美成人一区二区| 中文字幕一区二区久久人妻网站| 午夜国产精品理论片久久影院| 色狠狠一区二区三区| 欧美一级淫片免费视频魅影视频| 亚洲黄一区二区| 国产成人精品免费视频网站| 亚洲男人天堂网址| 免费av在线| 亚洲网站一区| 欧美色图片你懂的| 最近免费观看高清韩国日本大全| 欧美特黄aaaaaaaa大片| 色天天综合久久久久综合片| 国产精品7m视频| 波多野结衣网页| 菠萝蜜一区二区| 成人三级在线| 精品国产乱码久久久久酒店| 欧美第一淫aaasss性| 性感美女极品91精品| 欧美日本中文字幕| 欧美大胆在线视频| 97影院在线观看| 日韩精品亚洲元码| 一个人看的www在线免费视频| 亚洲精品成人三区| 成人免费高清在线播放| 国产一区二区免费电影| 亚洲自拍高清视频网站| jizzjizzjizz亚洲日本| 好看的视频你懂的| 中文字幕久热精品视频免费| 国产一区二区三区影视| 国产视频久久久久久| 国产精品视频一区二区三区四区五区| 日韩在线欧美在线| 人妻互换一区二区激情偷拍| 日韩第一页在线观看| 成人免费a**址| 欧美日韩国产一区二区三区| 成人在线观看网址| 日本一本草久p| 欧美中文字幕在线视频| 精品少妇一区二区三区视频免付费| 91av资源在线| 亚洲色精品三区二区一区| 在线看片你懂得| 免费a级观看| 成人性生活毛片| 欧美猛男男办公室激情| 久久久久国产美女免费网站| 三年片观看免费观看大全视频下载| 日韩毛片久久久| 毛片一区二区| 欧美+亚洲+精品+三区| 日本视频一区二区三区| 手机在线免费观看毛片| 国产日韩欧美在线| 欧美日韩精品欧美日韩精品一| 天堂网www天堂在线网| 国产精品美女一区二区在线观看| 久久精品国产清高在天天线| 三级精品在线观看| 极品av少妇一区二区| 国产精品中文字幕久久久| a在线观看网站| 亚洲一区二区| 免费在线观看视频一区| 在线观看视频h| 97精品视频在线播放| 亚洲欧美日韩精品久久久久| 国产曰肥老太婆无遮挡| 中文精品无码中文字幕无码专区| 欧美 日韩 国产精品免费观看| 青青草原播放器| xxxxx国产| 亚洲欧美日韩另类精品一区二区三区| 日韩欧美高清视频| 色猫猫国产区一区二在线视频| 91丝袜在线| 中文字幕视频精品一区二区三区| 久草在线网址| 逼特逼视频在线| 国产精品网在线观看| 国产精品视频一区二区三区麻豆| 91精品国产高清91久久久久久| 99视频在线观看视频| 九一精品国产| 国产女人18毛片水真多18| 国产精品不卡在线| 久久久久久久激情| 亚洲亚裔videos黑人hd| 日韩少妇高潮抽搐| 人人干人人干人人干| 亚洲欧美视频在线观看| 亚洲老司机av| 亚洲女人天堂在线| 日韩av超清在线观看| 中文字幕人妻一区二区三区在线视频| 亚洲超碰精品一区二区| 九色国产视频| a天堂视频在线观看| 亚洲va欧美va国产va天堂影院| 美国av一区二区| 丰满少妇被猛烈进入| 午夜精品免费观看| 超碰人人干人人| 欧美一级在线免费观看| 97久久综合精品久久久综合|