ajax发送信息,如何向websocket用户发送AJAX消息
我已经在Websockets中实现了实时聊天,它的工作就像一个魅力。 我将它与AJAX轮询(以前就存在)并排进行,因为我不想删除对旧浏览器的AJAX轮询支持,所以尽管Websockets将是首选,但我仍然将轮询作为一个选项。
我设置websocket代码的方法是:使用Websockets将消息发送到相应的连接
在数据库中记录邮件
AJAX发送的工作方式是:在数据库中记录邮件
AJAX轮询的工作方式是:检查用户上次检索房间邮件的时间,并检索此后的所有邮件
我有一个更多的概念性问题,关于如何让这两者相互合作。 假设我有用户A和用户B.如果用户A和用户B要么都使用AJAX轮询,要么都使用websockets,那么没有任何问题。 它的工作就像你所期望的那样。 但以用户A使用websockets而用户B使用AJAX轮询为例。
A B用户A通过WebSocket发送消息
聊天消息将发送到所有相关连接。 在本例中,它只回显给用户A,因为用户B没有使用WebSockets.
聊天消息登录到数据库
用户B请求新消息,用户A的消息被发回给他
B A用户B通过Ajax发送消息
邮件保存在数据库中
?
这就是我挂在心上的原因。 WebSocket->; AJAX用户消息之所以能够工作,是因为消息最终会在数据库中被AJAX用户轮询。 但是websocket用户根本不轮询数据库,因此来自AJAX用户的消息无法进入管道。 目前,websocket用户看不到来自AJAX用户的任何消息。 只有在重新加载整个页面时,它们才会看到这些消息,此时所有消息都将直接从数据库中检索出来。
允许AJAX用户的消息通过websocket发送到相关websocket用户的适当方法是什么? 基本上,我怎么能在另一个方向沟通呢?
关于这个问题,我唯一能找到的就是这张幻灯片—不过,我并没有使用长轮询,我也不完全确定“提供”给websocket应用程序是什么意思。 这是否意味着让websocket服务器负责检查新的AJAX消息? 没有办法从AJAX脚本“推送”到websocket服务器吗?
还没有评论,来说两句吧...