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

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


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

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


如果熟悉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


©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页