在PHP服务中使用Websocket

为什么需要 WebSocket?

需求是:用户停留页面 15 分钟,且没有任何操作,则弹出登陆窗口,让用户重新登陆。

一般这样的需求实现多为长连接轮询,会有浏览器的卡顿、服务端消耗及不容易维护等问题。

后来发现 websocket 这样的通讯方式,主要有以下优点:

  • 建立在 TCP 协议之上,服务器端的实现比较容易。
  • 手时不容易屏蔽,能通过各种 HTTP 代理服务器。
  • 数据格式比较轻量,性能开销小,通信高效。
  • 可以发送文本,也可以发送二进制数据。
  • 没有同源限制,客户端可以与任意服务器通信。
  • 协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。

目标已经选定,那么如何实现呢?

PHP 已经有非常好用的异步网络通信框架 swoole,节省了自己实现 websocket 服务的时间。用的是 laravel 框架选择了 laravel-swoole 扩展。

安装配置

引入 laravel-swoole 扩展包 

你可能感兴趣的:(php7面试架构师,Websocket)