第一代的Web技术,是基于HTML的静态页面,用于发布静态的内容。程序员们就想出来通过程序来生成HTML的技术,将内容保存于数据库中,然后通过SQl和模板引擎等技术去生成HTML页面。
第二代的Web,开始大量使用前端程序,使用Ajax等方式动态主动触发事件,从服务端拉取数据,并且增加了前端的程序逻辑。从而实现了Web页面上的交互。
不过,随着技术的发展,前两种架构已经远远不能满足信息交互需求了。通过采用Server PUSH的架构,服务器端可以主动向Web推送数据,从而达到实时交互,这一定会是未来的主流。比如A,B,C3人同时在一个页面上浏览,A对B进行了评论,并且提到了C。传统的架构,B,C将无法感知到,只有B,C再次拉取内容时,才会得到此信息。显然B ,C错误了与A交互的最佳时机,而且得知信息的时间延后了很多。
传统的PULL模式,也可以通过定时轮询的方式来尝试拉取数据。但这种技术1是并不是实时的,信息还是需要到了一定时间间隔才可以得到。2,这种方式可能大部分请求是无效的,白白浪费了一次网络请求。还造成了web Server的负载大大增高。
真正的PUSH技术目前有3种,WebSocket,目前还不够成熟,而且IE浏览器或其他低版本浏览器不支持。Flash Socket,虽然可以实现,但需要依赖Flash第三方组件,而且可能会被防火墙或者其他安全策略拦截,实际效果不理想。XHR轮询,这种方式目前是最成熟的解决方案,浏览器端开启KeepAlive,Server使用epoll等异步IO方式,效率非常高,实测效果非常好。目前Facebook、人人网都使用此模式。
目前大部分PUSU架构,都是用Erlang、Node.js等语言去实现。但Web2.0时代,基本上大部分网站都用PHP来实现的。改用其他编程语言实现,与现有架构就会不兼容。PHP也有libevent的Server实现方式,不过存在各种问题,并不好用。
Swoole通过C写了内置Server,并作为PHP扩展,提供了非常好的可编程性。Server本身的实现也非常高效,采用了多线程Epoll,全异步驱动,读写分离的方式。可以很好的利用到多核。
https://github.com/matyhtf/php_swoole
分享到:
相关推荐
本篇将主要讨论使用Servlet实现的Server Push技术,即服务器端主动向客户端推送数据。 【描述】: 这篇博客(原文链接:https://zw7534313.iteye.com/blog/703114)详细介绍了如何利用Servlet实现一个简单的Web...
DWR(Direct Web Remoting)是一个开源的Java库,它简化了JavaScript和Java之间的交互,允许在Web应用中实现AJAX和Server Push功能。DWR使得开发者可以在浏览器端调用服务器端的Java方法,就像它们是本地函数一样,...
总之,ASP.NET (C#) ServerPush是构建实时Web应用的关键技术,它利用多种底层传输机制实现服务器到客户端的数据实时推送,极大地提升了用户体验。掌握这些知识点对于开发高效、实时的Web应用程序至关重要。
Push 系统的技术架构基于 Spring 框架,使用 Spring MVC 框架实现 Web 层,使用 MyBatis 框架实现数据访问层,使用 Shiro 框架实现权限管理。同时,Push 系统还使用了多线程技术和 JSON 格式传参,实现高效、可靠的...
在本篇知识讲解中,我们将深入探讨Android如何使用MQTT进行Server Push以及`tokudu-PhpMQTTClient-ba4e494`这个库的相关应用。 首先,让我们理解Server Push的概念。Server Push是一种服务器主动将数据推送到客户端...
"ServerPush聊天室"是一种基于DWR(Direct Web Remoting)技术实现的实时通信系统,主要特点是能够实现实时的点对点聊天功能。在这个系统中,服务器主动将信息推送至客户端,而不是传统的客户端发起请求获取数据的...
本文将深入探讨如何利用Java中的Servlet实现Server Push技术来创建一个聊天室应用。 ### Servlet与Server Push技术 Servlet是Java平台上的服务器端应用程序接口,它主要用于扩展应用程序服务器的能力,处理来自...
将 Server Push 应用于 Web 程序时,需要考虑以下几个关键点: 1. **客户端如何接收和处理信息**:客户端需要具备接收和解析服务器推送的数据的能力,这可能涉及到 JavaScript 代码的编写。 2. **客户端展示形式**...
在.NET开发环境中,"Server Push"技术是一种允许服务器主动向客户端发送数据,而不仅仅是响应客户端请求的方法。这种技术常用于实时应用,如聊天系统、股票报价、在线游戏等,能够提高用户体验并降低延迟。以下是对...
在Web开发中,服务器推送(Server Push)是一种技术,它允许服务器主动将数据发送到客户端,而无需等待客户端的请求。这种机制打破了传统的HTTP协议的请求-响应模型,提高了实时性和交互性。在ASP.NET框架下实现...
2. **Web Push SDK集成**:将`huawei-push-client-webpush` SDK引入到Web项目中,通常通过CDN链接或者本地引入。确保SDK与华为推送服务兼容,以便正确处理推送事件。 3. **用户授权**:当用户访问Web应用时,应用...
Web推送协议(Web Push Protocol)则提供了一种更高效、可靠的方式,它允许服务器直接将消息推送到用户的设备上,而无需客户端持续保持连接。这种协议遵循了服务端推送(Server-Sent Events, SSE)和WebSocket等技术...
【标题】"serverpush做的webRoom"涉及到的技术和概念主要集中在服务器推送(Server Push)以及Web实时通信领域,尤其在构建一个基于DWR(Direct Web Remoting)的在线聊天室应用上。首先,我们来详细了解这些关键点...
标题中的“Flex与Java Server Push数据”涉及到的技术是基于Adobe Flex客户端和Java服务器端的数据实时推送技术。在Web开发中,传统的HTTP协议是基于请求-响应模型的,但这种模式无法实现服务器主动向客户端推送数据...
### 服务器推送技术(Server Push)详解 #### 一、引言 随着互联网技术的发展,用户对实时信息的需求越来越高。传统的客户端请求模式(Client Pull)已无法满足这种需求,因此服务器推送技术(Server Push)应运而生。...
ASP.NET Server Push是一种技术,它允许服务器主动向客户端发送数据,而无需客户端发起新的请求。在传统的HTTP协议中,客户端需要先发起请求,服务器才能响应数据。然而,Server Push技术打破了这种模式,使得实时性...
本主题将详细探讨如何使用Go进行Web Push通知服务,包括App的申请、推送流程以及客户端的公钥私钥配置。 1. **Web Push简介** Web Push是一种允许网站向用户发送通知的技术,即使用户不在网站上也能接收到消息。这...
安装对于Gradle,将以下依赖项添加到build.gradle :compile group : ' nl.martijndwars ' , name : ' web-push ' , version : ' 5.1.1 ' 对于Maven,将以下依赖项添加到pom.xml : < groupId>nl.martijndwars ...
总的来说,ASP.NET Server Push长连接技术是现代Web应用程序实现实时通信的关键技术之一,通过合理选择和实现,可以极大地提升用户体验。在开发过程中,理解各种实现方式的优缺点,以及如何针对具体场景进行优化,...