请问服务器怎么判断不同用户

来源:百度知道 编辑:UC知道 时间:2024/09/19 17:19:08
以匿名聊天网站omegle.com为例
假设服务器同时收到A和B两个客户端的Ajax Post请求
怎么把A请求的内容返回给B,B的返回给A?
如果A,B不是同时请求,A比B早到,怎么延迟A使得B到了再返回给A呢?
To noitl,O_Game_Over_O:
我知道每个访问者都有不同的sessionID,问题是要怎么根据不同Session返回不同的值呢?
难道说要
if(A.sessionID) Response.Write("B.content")
else if(B.sessionID) Response.Write("A.content") ?
那这样如果人多了判断岂不麻烦?
还有第二问延迟怎么处理?

To janhoosan :
A的请求(A的聊天内容)到了。我怎么把A的请求内容发给B?因为我现在处理的A而不是B呀。
To jippo08456:
关于触发器,我也想到让A的请求一直挂在服务器,当B一来就触发A的回调函数,不知道有没有这种可能性

每个用户登陆网站都会川建一个唯一标识的session,这个session是在整个会话期间都存在且不变的,而且这个用户所做的一切动作(聊天,点击等),都会向服务器发送消息和他自己的session信息,这样服务器就能根据session判断出这个用户的行为了,
以omegle为例,A和B建立连接后,A发送的消息会包括A的session,A的消息和A聊天的对象(也就是B);对与B也是一样,这样服务器就知道A是在于B聊天,这样就不会弄错了。
第二个问题,每台明白你的意思,AB不是同时请求,A早一点,为什么要延迟A的请求, 具体要吃的方法到是可以通过程序来实现,不过不知道你具体要实现什么功能。

1
SESSION 中存的只是用户的id
比如a给b传东西,SESSION 中只存a。
b仅仅是一个对象,应该是你写的传递方法的参数

你所说的根据根据不同Session返回不同的值是什么意思不太明白
要是你想得到和a有关的所有信息
把SESSION a作为参数从数据源中去查

2
AB的请求可以做个触发器,触发了就让对方刷新,得到你发送的信息
延迟是硬件问题,无法解决

每个来访的人都有一个独立的ID撒
你随机或按顺序分配撒
根据他们的IP地址和ID关联在一起.
要用的时候就根据ID返回值就好了.

每个人有不同的SESSION 就像一个人唯一的ID 获取这个ID就可以判断任何人 也可以辨别其其他信息

这个问题不值得你给那么多分...

Session用来区分用户...
每个浏览器都对应一个session.