【问题标题】:Javascript to socket server connecitonJavascript 到套接字服务器连接
【发布时间】:2011-03-21 07:10:36
【问题描述】:

我想创建一个网络聊天。有人建议我使用 Php Socket 服务器。我已经制作了一个,它们在 telnet 客户端上运行良好。
我发现自己迷惑的是如何通过 ajax 将数据发送给客户端(不刷新页面)。
我所能想到的就是用ajax调用一个php文件,获取数据并更新页面。但这不会反过来工作。
还是我错过了什么?

您将如何实现 1 对 1 网络聊天?

【问题讨论】:

标签: javascript php ajax sockets chat


【解决方案1】:

一种解决方案是长轮询。客户端将向脚本打开 AJAX 请求,该脚本将阻塞并等待数据进入。如果在一分钟内没有数据进入,它将返回并且客户端将重新打开连接。如果有数据进来,那么它会立即返回数据,客户端会更新它的视图。

要发送数据,只需执行普通的 AJAX 回调即可。

【讨论】:

  • 客户端代码保持不变。只是您实际上会在很久以后才收到数据。服务器将是一个必须管理一堆正在进行的连接、处理传入的新数据、找到合适的连接来发送数据并发送数据的东西。
【解决方案2】:

您已经了解了客户端发起的通信的概念,这对于从客户端向服务器发送内容是很好的。

由于 HTTP 的无状态特性,无法将数据“推送”到客户端。

解决此问题的方法是始终保持与服务器的连接处于打开状态。请求处于挂起状态,当服务器有话要说时,它会响应挂起的请求。每当发生这种情况时,客户端都会创建一个新的请求以保持等待,直到下一次服务器->客户端通信必须发生。

实现近实时通信的另一种方法是通过频繁轮询。但我真的不推荐这种方法。尤其不适合聊天程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 2017-02-25
    • 2011-10-13
    • 2021-02-11
    • 2014-10-16
    • 2021-04-19
    • 2011-04-27
    相关资源
    最近更新 更多