基于.Net平台开发的网页版实时聊天程序

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 15:30   11   0

空闲时间博主自己弄了个还算有趣的小玩意儿,是一个在线聊天的网站,先不多说,看看效果图。


用户在姓名栏输入自己的姓名(因为没有做注册的页面,所以姓名是自己输入的),内容的话在编译器的方框里面输入,可以输入表情,图片,包括插入百度地图等等,如标题

为什么说实时聊天,因为如果同一时间有其他用户在发布聊天信息,那么网站会把该内容给刷新出来,而不需要刷新页面。


如果熟悉jQuery的朋友,肯定就知道了,这是用到了jQuery中的Ajax技术,代码如下

<script type="text/javascript">
function getMessage() {
$.post("Webservice.aspx",//服务端页面
function (data) {
$("#one").html(data);
})
}
$(function () {
setInterval("getMessage()",1000);
}
)
</script>
</head>

$.post方法会向服务端页面不停的发送请求,而setInterval函数则在每1000毫秒的时间执行一次getMessage(),而getMessage()则负责向服务器端发送请求,让我们来

看看服务器端的代码吧

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using NJSQSoft.DataAccess;


namespace jQuery10._9
{
public partial class Webservice : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string user = "";
string cont = "";
DataCommand.SConnString = "databaseconn";
SqlDataReader sp = DataCommand.ExecuteReader(CommandType.StoredProcedure, "AQuery_Ajax_Test");
if (sp != null)
{
while (sp.Read())
{
user = sp["username"].ToString();
cont = sp["content"].ToString();
string str3 = "<br>" + user + ":" + cont + "</br>";
Response.Write(str3);
}
sp.Close();
}
else
{
Response.Write("No Message!");
}
}
}
}

服务端其实也很简单,即是负责从数据库里面读取数据,当然每读取一行数据后,会负责向newchat.aspx页面发数据,这里面有一点要注意

如果接受数据$("#one").html(data),其中id为one的结构体如果是textera(即文本框的话),那么在回传数据string str3 = user + ":" + cont + "/n",服务器端从

数据库读取数据时,会换行,以往聊天信息记录在newchat.aspx页面显示时不会凌乱,而如果one代表的结构体是lable的话,那么应该

以string str3 = "<br>" + user + ":" + cont + "</br>";形式返回数据。这点是要注意的。

最后一点要说明的是,博主使用的编辑器是KindEditor4,所以在使用的时候,需要在newchat.aspx页面头部,调用一下js文件

<script charset="utf-8" src="KindEditor4/kindeditor.js"></script>,各位朋友可以在网上下载,不过博主在嫁接时,发生了一个错误,缺失一个LitJson.dll文件

不过问题不大,网上都有下载,只要下载好之后引用一下就行。

附上webconfig配置文件

<?xml version="1.0"?>


<!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
-->


<configuration>
<connectionStrings>
<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="databaseconn_Server" value="."/>
<add key="databaseconn_DB" value="NJSQ_yanbiao"/>
<add key="databaseconn_User" value="1509FB7EA8F2853E"/>
<add key="databaseconn_Pwd" value="C20515CEB63F15CC" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime requestValidationMode="2.0" />
<pages validateRequest="false">
<controls>
<add tagPrefix="ZSHPagerUrlRe" namespace="Control" assembly="Control" />
</controls>
</pages>
</system.web>
<system.webServer>
<directoryBrowse enabled="true" />
</system.webServer>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>

有疑问欢迎加Q:859370476


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP