所在的位置: Web开发 >> JSP >> php使用websocket

php使用websocket

最近做了一个活动是手机摇一摇抽奖。主要技术使用到了workerman,先简单的说一下workerman。然后在说websoket。

workerman是一个高性能的PHPsocket服务器框架,workerman基于PHP多进程以及libevent事件轮询库,PHP开发者只要实现一两个接口,便可以开发出自己的网络应用,例如Rpc服务、聊天室服务器、手机游戏服务器等。

workerman的目标是让PHP开发者更容易的开发出基于socket的高性能的应用服务,而不用去了解PHPsocket以及PHP多进程细节。workerman本身是一个PHP多进程服务器框架,具有PHP进程管理以及socket通信的模块,所以不依赖PHP-fpm、nginx或者apache等这些容器便可以独立运行

WebSocket是什么

WebSocket一种在单个TCP连接上进行全双工通讯的协议。WebSocket通信协议于年被IETF定为标准RFC,并被RFC所补充规范,WebSocketAPI被W3C定为标准。WebSocket是独立的、创建在TCP上的协议,和HTTP的唯一关联是使用HTTP协议的状态码进行协议切换,使用的TCP端口是80,可以用于绕过大多数防火墙的限制。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端直接向客户端推送数据而不需要客户端进行请求,在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并允许数据进行双向传送。目前常见的浏览器如Chrome、IE、Firefox、Safari、Opera等都支持WebSocket,同时需要服务端程序支持WebSocket

WebSocket技术背景

现在,很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTPrequest,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTPrequest的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽和服务器资源。

长链接

HTTP持久连接(HTTPpersistentconnection,也称作HTTPkeep-alive或HTTPconnectionreuse)是使用同一个TCP连接来发送和接收多个HTTP请求/应答,而不是为每一个新的请求/应答打开新的连接的方法。

HTTP1.0中,没有官方的keepalive的操作。通常是在现有协议上添加一个指数。如果浏览器支持keep-alive,它会在请求的包头中添加:Connection:Keep-Alive然后当服务器收到请求,作出回应的时候,它也添加一个头在响应中:Connection:Keep-Alive

图2请求响应Connection:Keep-Alive参数

这样做,连接就不会中断,而是保持连接。当客户端发送另一个请求时,它会使用同一个连接。这一直继续到客户端或服务器端认为会话已经结束,其中一方中断连接。

在HTTP1.1中所有的连接默认都是持续连接,除非特殊声明不支持。HTTP持久连接不使用独立的keepalive信息,而是仅仅允许多个请求使用单个连接。然而,Apache2.0







































白癜风治疗用什么方法
北京白癜风哪个医院治白癜风好



转载请注明:http://www.guyukameng.com/jsp/jsp/8546.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了