asp.net练习①——Application聊天室
2018-06-22 07:44:27来源:未知 阅读 ()
已经好几年没写过代码,重新练习起代码,在这做做笔记备忘。
aspx页面js代码:
<script type="text/javascript"> function showMsg() { //定时刷新获取聊天内容 var data = "{}"; $.ajax({ type: "POST", datatype: "json", contentType: "application/json; charset=utf-8", url: "WebService1.asmx/GetMessageContent", success: function (result) { var msgdiv = document.getElementById("MessageShowDiv"); msgdiv.innerHTML = ""; msgdiv.innerHTML = result.d; //保持滚动条在最下面 msgdiv.scrollTop = msgdiv.scrollHeight; } }) } var timer1 = window.setInterval("showMsg()", 2000); //window.clearInterval(timer1) function showOnlineUsers() { var users = document.getElementById("OnlineUsersShow"); $.ajax({ type: "POST", datatype: "json", contentType: "application/json;charset=utf-8", url: "WebService1.asmx/GetOnlineUsers", success: function (result) { users.innerHTML = ""; var str = result.d.substring(0,result.d.lastIndexOf("|")).split("|"); var userStr = ""; $.each(str, function (i, val) { userStr += val + "<br/>"; }) users.innerHTML = userStr; } }) } var timer2 = window.setInterval("showOnlineUsers()", 10000); //window.clearInterval(timer2) function sendMsg() { var txt = document.getElementById("txtMessage"); if (txt.value.length > 0) { var MsgData = "{Msg:'" + $("#txtMessage").val() + "'}"; $.ajax({ data : MsgData, type : "POST", datatype: "json", contentType: "application/json; charset=utf-8", url: "WebService1.asmx/SendMsg", success: function (result) { if (result.d == "true") { showMsg(); txt.value = ""; } else if (result.d == "OutTime") { alert("登录超时,请重新登录!"); window.location.href = '_login.aspx'; } else { alert("通讯发送错误:" + result.d); } }, error: function (e) { alert(e.d); } }); } else { alert("请输入内容再发送..."); } } </script>
asmx代码:
[WebMethod (Description ="获取聊天记录",EnableSession = true)] public string GetMessageContent() { if (Application["Message"] == null) { return "当前无聊天信息。"; } int length = Convert.ToInt32(Session["MessageLength"]); return Application["Message"].ToString().Substring(length); } [WebMethod(Description = "发送聊天内容", EnableSession = true)] public string SendMsg(string Msg) { //验证用户是否登录超时 if (Session["UserName"] == null) { return "OutTime"; } try { //用户 [时间]:内容 string message = Msg.Trim(); string username = Session["UserName"].ToString(); string datenow = DateTime.Now.ToLongTimeString(); string msg = username + " [" + datenow + "] :" + message + "<br/>"; Application.Lock(); Application["Message"] = Application["Message"].ToString() + msg; Application.UnLock(); return "true"; } catch (Exception ex) { return ex.ToString(); } } [WebMethod(Description = "获取在线用户")] public string GetOnlineUsers() { if (Application["OnlinePersons"] == null) { return ""; } return Application["OnlinePersons"].ToString(); }
登录后cs代码:
protected void btnLogin_Click(object sender, EventArgs e) { //记录用户名 Session["username"] = username.Value; //增加在线用户 Application.Lock(); Application["online"] += username.Value + "|"; Application.UnLock(); //记录登录时存在的聊天信息长度,只显示登录后发生的聊天信息 Session["messageLength"] = 0; Application.Lock(); Session["messageLength"] = Application["Message"].ToString().Length; Application.UnLock(); //跳转页面 Response.Redirect("_showMessage.aspx"); }
源代码链接:http://pan.baidu.com/s/1o7WuTGu
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- asp.net源程序编译为dll文件并调用的实现过程 2020-03-29
- Asp.net MVC SignalR来做实时Web聊天实例代码 2020-03-29
- ASP.NET MVC中jQuery与angularjs混合应用传参并绑定数据 2020-03-29
- Asp.Net中WebForm的生命周期 2020-03-29
- ASP.NET使用Ajax返回Json对象的方法 2020-03-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash