前端websocket与php后台连接

HTTP协议的特性:属于“请求-响应”模型,只有客户端发起了请求消息,服务器才能给出响应消息,没有请求,就没有响应;一个请求消息,服务器只能返回一个响应消息。有些特殊应用场景中,如“在线股票”、“聊天室”等,需要模拟呈现出“客户端不发请求,服务器也在不停的给出响应”效果,若使用HTTP协议,只能使用“AJAX+定时器”来近似的实现——心跳请求,问题:心跳过慢则信息的实效性差,心跳过快则服务器压力太大!

WebSocket协议的特性:属于“广播-收听”模型,只要客户端连接到服务器上,就不再断开(永久连接),一方可以不停的给对方发消息,对方可以不给出响应。使用WS协议代替心跳请求,可以非常好的解决HTTP协议在某些应用中的不足。WS协议的服务器也有不足:永久连接限制了客户端的数量。

WebSocket应用程序必需两个程序:

WS服务器端程序:

 (1)、可以使用Java、PHP、C#、Node.js编写,修改PHP解释器配置文件(php.ini)来启用socket相关函数:extension=php_sockets.dll    去掉此行前的分号(此例子采用xampp本地服务) 重启本地服务(记得配置xampp的php变量环境,不懂百度)

(2)、在xampp\\htdocs 下新建一个文件websocket,里面新建两个文件如下:

socket_client.html

socket_server.php

socket_client.html文件代码如下:




  
  


  

WebSocket协议的客户端程序

socket_server.php代码如下:

 

(3)、进入文件夹(xampp\htdocs\websocket)按住Shift +右键,(选择在此处打开令行窗口)执行调用PHP解释器,执行PHP语言编写的Socket服务器程序,输入如下代码:

php socket_server.php

运行完显示如下信息代表连接成功

前端websocket与php后台连接_第1张图片

(4)、访问socket_client.html (http://127.0.0.1/websocket/socket_client.html) 需要服务访问,点击按钮“连接到ws服务器”控制台上(console.log)能看到如下

前端websocket与php后台连接_第2张图片

点击按钮“向WS服务器发消息并接收消息”就能看到如下

前端websocket与php后台连接_第3张图片

这时就可以将信息填入html 标签上  就实现了  时时更新了

 

 

你可能感兴趣的:(websocket)