聊天室怎样实现私聊

主要是想做一个简单的聊天室,不要和数据库进行连接的。要实现私聊。可是不知道如何获取对方的session。希望高手能帮帮我啊 ,在此先谢谢了啊我用ASP进行编写的,可是我要如何获取私聊对像的用户名呢。而且保证只有我们两个能够看到呢??
2026年09月25日 08:40
有5个网友回答
网友(1):

私聊要求发言者和发言对象都能看到私聊的内容,另外,当私聊的对象是所有人时,责所有的人都能看到私聊的内容。因此,可以设置几个Application变量来保护私聊信息。例如,Application("Chat")保存私聊的内容,Application("Chatto")保存私聊的对象。当用户登陆聊天室时,使用Session("User")记录用户名,Session("Chat")记录该用户是否私聊,初始化为False,表示用户没有私聊;当用户要私聊时,责记录私聊信息,并将Session("Chat")设置为True,表示有私聊。其语句如下
Application("chat")=""&发言者&悄悄的对 "&私聊对象&"说:"&聊天内容&"


Application("chatto")=私聊对象用户名
Application("owner")=发言者用户名
Session("chat")=true
当Application中保存信息后,用户浏览器端会判断Session("User")的值与Application("chatto")或者Application(“Owner”)的值是否相同,如果相同,则在浏览器端显示私聊内容;如果不相同,但Application(“chatto”)是所有人,则仍然显示私聊内容,否则不会显示任何私聊信息

代码如下:建3个页面users.asp ,privatemsg.asp ,sendprivate.asp
//以下代码获取在线用户信息
<





在线用户



<%
' 获取聊天的名称
Topic = Session("Topic")
Application.Lock ' 锁定application对象
' 当前用户不为空
If Not IsEmpty(Application.Contents("Users")) Then
Users = Application("Users")
Group = Application("UsersGroup")
NumOfUsers = UBound(Users)
For I = 0 To NumOfUsers '遍历用户名
If Topic = Group(I) Then
Response.Write ""
' 输出在线用户的相关信息
Response.Write " " & Users(I) & "
"
Response.Write " IP: " & Application("UsersIP")(I) & "
"
Response.Write " 登录时间: " & Application("UsersTimeOn")(I) & "


"
End If
Next
End If
Application.Unlock ' 解锁application
%>




单击用户昵称发送私聊信息



//以下代码私聊
<%
' 获取用户信息
User = Request.QueryString("user")
From = Request.QueryString("from")
%>


Private Message To:<%=User%>





发送私聊信息给:<%=User%>




信息:













//私聊马上就要实现了
<%
' 获取私聊窗口表单中的信息
User = Request.Form("User")
From = Request.Form("From")
Msg = Request.Form("Msg")
' 取出application对象中的用户信息
PrivRcpt = Application("PrivateRcpt")
If IsArray(PrivRcpt) Then
PrivateMsgs = Application("PrivateMsgs")
NumOfRcpt = UBound(PrivRcpt) +1
' 重新定义用户信息数组
ReDim Preserve UpdatedPrivRcpt(NumOfRcpt)
ReDim Preserve UpdatedPrivMsg(NumOfRcpt)
' 将用户信息放入数组的最后
UpdatedPrivRcpt(NumOfRcpt-1) = User
UpdatedPrivMsg(NumOfRcpt-1) = "Private Message From " & From & ":" & Msg
' 在将信息存入application对象
Application("PrivateRcpt") = UpdatedPrivRcpt
Application("PrivateMsgs") = UpdatedPrivMsg
Else
ReDim UpdatedPrivRcpt(1)
ReDim UpdatedPrivMsg(1)
' 将用户私聊信息加入到application对象中。
UpdatedPrivRcpt(0) = User
UpdatedPrivMsg(0) = "Private Message From " & From & ":" & Msg
Application("PrivateRcpt") = UpdatedPrivRcpt ' 用户信息加入application("PrivateRcpt")
Application("PrivateMsgs") = UpdatedPrivMsg ' 聊天信息加入到application("PrivateMsgs")

End If
' 导航到发送私聊信息窗口
Response.Redirect "privatemsg.asp"

%>

网友(2):

1:一般公共聊天室都有私聊的功能的。


2:下图是一般聊天室的聊天条。有没有看到左上角写着所有人的地方?


3:然后点聊天室里你想说话人的名字。


4:点后就会出现下图里面有个对ta悄悄话。


5:这样我们就可以看到下图左下角这里就出现了你想聊天人的名字了,这样就变成私聊了

网友(3):

实现私聊可以考虑以下几个步骤:1. 增加私聊按钮:在聊天室界面上增加私聊按钮,让用户能够选择与某个用户开始私聊。2. 选择私聊对象:当用户点击私聊按钮时,弹出选择框,让用户选择要私聊的用户。3. 发送私聊消息:将用户输入的私聊消息发送给选择的私聊对象,只有这个私聊对象才能够接收到该消息。4. 显示私聊记录:在私聊页面上显示该私聊对象与当前用户之间的私聊记录。需要注意的是,私聊消息的发送和接收需要在后台进行实现,以保护用户隐私和安全。此外,还需要考虑如何保护用户免受骚扰和恶意消息的困扰。

网友(4):

私聊要求发言者和发言对象都能看到私聊的内容,另外,当私聊的对象是所有人时,责所有的人都能看到私聊的内容。因此,可以设置几个Application变量来保护私聊信息。例如,Application(“Chat“)保存私聊的内容,Application(“Chatto“)保存私聊的对象。当用户登陆聊天室时,使用Session(“User“)记录用户名,Session(“Chat“)记录该用户是否私聊,初始化为False,表示用户没有私聊;当用户要私聊时,责记录私聊信息,并将Session(“Chat“)设置为True,表示有私聊。其语句如下
Application(“chat“)=““&发言者&悄悄的对 “&私聊对象&“说:“&聊天内容&“


Application(“chatto“)=私聊对象用户名
Application(“owner“)=发言者用户名
Session(“chat“)=true
当Application中保存信息后,用户浏览器端会判断Session(“User“)的值与Application(“chatto“)或者Application(“Owner”)的值是否相同,如果相同,则在浏览器端显示私聊内容;如果不相同,但Application(“chatto”)是所有人,则仍然显示私聊内容,否则不会显示任何私聊信息

网友(5):

你可以百度一下小火柴匿名聊天,每一次聊天都是私聊。