也就是站内短信功能,哪位高手做过?

解决方案 »

  1.   

     可以用AJAX做啊,一方发,另一方收
      

  2.   

    网上有的是
    http://www.51aspx.com/Type/9/
      

  3.   

    现在的私信这个很简单啊,你发送过去,存在数据库中,标志未读,然后等对方刷新页面就能看到了,并不是即时的。
    不过之前有个即时网页聊天的,不知道为什么CSDN把它关掉了~
      

  4.   

    额.没接触过...希望有个demo什么的...
      

  5.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ChatRoom.aspx.cs" Inherits="Register_ChatRoom" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head id="Head1" runat="server">
        <title></title>
        <link href="../css/MyCss.css" rel="stylesheet" type="text/css" />
        <script src="../JS/jquery-1.3.2.min.js" language="javascript" type="text/javascript"></script>
        <script src="../JS/Send.js" language="javascript" type="text/javascript"></script>
        <script src="../JS/checks.js" language="javascript" type="text/javascript"></script>
        <script language="javascript" type="text/javascript">
        function GetTime()
        {
            var now=new Date();
            return now.getYear()+"-"+(now.getMonth()+1)+"-"+now.getDate()+"&nbsp"+now.getHours()+":"+now.getMinutes()+":"+now.getSeconds();
        }
        </script>
    </head>
    <body onload="flash()"ondragstart="window.event.returnValue=false" oncontextmenu="window.event.returnValue=false" onselectstart="event.returnValue=false">
        <form id="form1" runat="server">
        <center>
            <div id="top">
                <asp:Literal ID="Literal1" runat="server"></asp:Literal>
            </div>
            <div id="body">
                <table width="100%" border="0" cellpadding="0" cellspacing="0">
                    <tr>
                        <td style="vertical-align: top; width: 60%; height: 12px; text-align: left"><div class="Cleft">
                            
                                    <iframe name="I1" src="ProList.aspx?ID=<%= Request.QueryString["ID"].ToString()%>" onload="document.all('I1').style.height=I1.document.body.scrollHeight;" border="0" frameborder="0" width="100%" style="border-style: solid; border-width: 0; padding: 0; vertical-align: top; text-align: left; background-color: transparent;" marginwidth="2" marginheight="2" scrolling="no"></iframe>
                            &nbsp;</div>
                            </td>
                        <td style="vertical-align: top; text-align: left"><div class="Cright" style="vertical-align: top; text-align: left">
                            <table width="100%" border="0" cellpadding="0" cellspacing="0">
                                <tr>
                                    <td><iframe name="contents" frameborder="0" width="100%" height="400px" src="ChatContents.aspx" style="word-break:break-all"></iframe></td>
                                </tr>
                            </table>
                            <div>
                                <table width="100%" border="0" cellpadding="0" cellspacing="0">
                                    <tr>
                                        <td>
                                            <textarea id="SendTxt" cols="20" rows="2" style="width: 99%; height: 50px; background-color: transparent; border-right: #cccccc 1px solid; border-top: #cccccc 1px solid; border-left: #cccccc 1px solid; border-bottom: #cccccc 1px solid;"></textarea></td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <table border="0" cellpadding="0" cellspacing="0" style="margin-left: 10px">
                                                <tr>
                                                    <td>
                                                        <input id="Send" type="button" value="发送消息" /></td>
                                                    <td style="width: 41px">
                                                        <input id="Reset1" type="reset" value="取消" /></td>
                                                    <td style="width: 125px">
                                                        <input id="Empty" type="button" value="清空聊天信息" /></td>
                                                    <td>
                                                        <asp:Button ID="Button1" runat="server" Text="退出聊天室" OnClick="Button1_Click" /></td>
                                                    <td><div id="error"></div></td>
                                                </tr>
                                            </table>
                                        </td>
                                    </tr>
                                </table>
                            </div>
                        </div></td>
                    </tr>
                </table>
                <asp:HiddenField ID="HiddenField1" runat="server" />
                <asp:HiddenField ID="HiddenField2" runat="server" />
                </div>
        </center>
        </form>
    </body>
    </html>// JScript 文件
    var id0=0;
    $().ready(function(){
        $("#Send").click(send_onclick);
        $("#exit").click(Exit_onclick);
        $("#SendTxt").focus(function(){
        $("#error").html("");
        }); 
        $("#UserList").click(function(){
        $("#error").html("");
        });
        $("#Empty").click(function(){
        window.parent.frames["contents"].document.getElementById("contents").innerHTML="";
        });
        window.setInterval("sss()",200);
    });
    function sss(){
     //frames[0].document.body.innerHTML+="<br>"+(new Date()).toLocaleString();
     frames["contents"].scrollBy(0,100);
     //setTimeout(sss,200);
    }//注册键盘事件
    $(document).keydown(function(e){
        if(e.keyCode==13){send_onclick();}
    });
    //发送消息
    function send_onclick() {
        var chatcontent=$("#SendTxt").val();
        var addressee=$("#HiddenField2").val();
        var from=$("#HiddenField1").val();
        if(addressee==null){
            $("#error").css("color","red"); 
            $("#error").html("请选择客户!")
            ;return false;
        }
        if(chatcontent.length<1){
            $("#error").css("color","red"); 
            $("#error").html("请输入内容");
            return false;
        }
        if(chatcontent.length>250){
            $("#error").css("color","red"); 
            $("#error").html("字数过多!");
            return false;
        }
        if(!checks(chatcontent))
        {
            $("#error").css("color","red"); 
            $("#error").html("请勿包含以下#%&\<>,;:=!^-非法字符");
            return false;
        }
        $.ajax({
            type:"post",
            dataType:"json",
            url:"../ashx/SendMessage.ashx",
            data:"FromUser="+encodeURI(from)+"&ToUser="+encodeURI(addressee)+"&Message="+encodeURI(chatcontent),
            success:function(data){}
        });
        //var time=Date();
        window.parent.frames["contents"].document.getElementById("contents").innerHTML += "<font color='#FF2400'>【"+from+"】于"+GetTime()+"对〖"+addressee+"管理员〗说:</font><br/>&nbsp;&nbsp;&nbsp;<font color='#FF7F00'>"+chatcontent+"</font><br/>";
        sss();
        $("#SendTxt").val("");
        return true;
    }
    function Exit_onclick()
    {
        $("#SendTxt").val("");
    }长度原因~接收代码没贴~不过和发送一样道理,使用ajax轮询
    数据库~FromUser字段表示发信人、ToUser收信人、Contents内容、IsOrNoRead是已否读
      

  6.   

    我的思路是,页面定时1分钟连下服务器,去查下数据库。数据库中有个字段,叫"最后查看时间",查看一次更新一次。然后我们发的私信肯定有个发送时间。然后我们下次去连数据的时候去判断:select Count(*) from 表 where 条件=发送时间>(查出这个最后查看时间)如果有数据,就显示为这个查出的Count(*)
      

  7.   


    能将源码发给我么?[email protected]