我想创建一个网络聊天。有人建议我使用Php套接字服务器。我做了一个,它们与telnet客户端运行良好
我发现自己的问题是如何通过ajax(无页面刷新)将数据传输到客户端。
我能想到的就是用ajax调用php文件,获取数据并更新页面。但那反过来说不会起作用
或者我错过了什么?
您如何实施1对1网络聊天?
答案 0 :(得分:0)
您已经了解了客户端发起的通信,这可以将内容从客户端发送到服务器。
由于HTTP的无状态特性,无法将未经禁止的数据“推送”到客户端。
解决这个问题的方法是始终将连接重新打开到服务器上。请求处于挂起状态,当服务器有话要说时,它会响应挂起的请求。每当发生这种情况时,客户端都会创建一个新请求,直到下次必须进行服务器 - >客户端通信为止。
实现近实时通信的另一种方法是通过频繁轮询。但我真的不推荐这种方法。特别是不适合聊天程序。
答案 1 :(得分:0)
一种解决方案是长轮询。客户端将向脚本打开一个AJAX请求,该脚本将阻塞并等待数据进入。如果一分钟内没有数据进入,它将返回,客户端将重新打开连接。如果数据进入,则它将立即返回数据,客户端将更新其视图。
要发送数据,只需执行正常的AJAX回调。