客户端-服务器端互动比较与原生实例(比较ajax,…
2018-06-18 04:46:32来源:未知 阅读 ()
昨日学习了websocket的原生实例,觉得有必要把几种常见的客户端-服务器端无刷新交互形式列举比较:
一、Ajax:客户端决定何时主动向Server端发请求
如:无刷新评论、无刷新更换图片。
主要目的是为了无刷新客户体验,但都是客户端的操作来触发向Server发送请求。
实例网上很多,原生的js或封装了的jQurey都算比较常用、易懂、易自助修改的方式。
二、Server-sent event:定时由Server端向客户端推送内容
如:每秒推送股市动态、每秒推送体育比赛文字转播。
特点是客户端只需要发送一次“来吧,请蹂躏我吧”的请求(可打开页面就自动发送,减少用户操作),Server就定时推送。缺点是耗流量。
原生实例可参照w3school:服务器发送事件(http://www.w3school.com.cn/html5/html_5_serversentevents.asp)
三、Socket网络通信:双方平等,自由交互,我想发给你时你才需要接收
如:聊天场景。
特点是省流量,客户端什么时候想发就发,服务器端什么时候想回就回,两边都有监听者socket在负责。
我最初学习的是.Net Socket,是基于.net框架的网络通信,一般实例用的控制台程序或WinForm来做。
昨日新接触了WebSocket,与Net Socket主要区别是面向浏览器端(用web所以叫websocket),需要HTML5支持,浏览器大都支持(ie10以上,最新FF、Chrome都支持,听说Safari曾觉得此技术不安全暂时取消了支持),最可惜是需要.net4.5及以上版本才可以,即:.net4.0下是没有System.Web.WebSocket这个命名空间(不知道另导dll有没有用)——然而WinServer2003最多支持到.net4.0……
.net4.0下又想用web的形式、又想用socket:NetSocket做成控制台程序,ui继续用web(html+js)发送ws协议的请求到控制台程序即可。
原生实例参考:Leo的(http://www.cnblogs.com/Leo_wl/archive/2013/04/12/3016063.html),文章提及了上述的形式,仅有一处笔误:GetSecKeyAccept()方法中附加的字符串少了一个“-”(在E914之前)。应该是:byte[] encryptionString = SHA1.Create().ComputeHash(Encoding.ASCII.GetBytes(key + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"));
笔者也写了一份实例demo,支持多开web对同一server进行通信,请看笔者“在线捉鬼”系列的svn代码:
svn地址:https://115.29.246.25/svn/Catghost/ 账号:guest 密码:guest
第12版本日志:
1. 模拟服务器端:启动NetSocketDemo.Server项目
2. 模拟客户端:访问Catghost.WebSocketDemo项目的Demo40.html页面(可多开)
四、其他关键词:SignalR(服务器推送),轮询,Socket4Net(客户端封装),SuperSocket(服务器端封装)
在学习的过程中遇到较多的其他关键词,列出以备读者拓展学习。
SignalR还没学过,轮询是概念理解。
Socket4Net是对Socket的客户端封装:http://websocket4net.codeplex.com
SuperSocket是对Socket的服务器端封装:http://superwebsocket.codeplex.com
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:小学生之类与对象
- Spring Cloud Ribbon 客户端负载均衡 2020-06-04
- 服务器软件大扫盲 2020-05-18
- java socket实现服务端,客户端简单网络通信。Chat 2020-05-03
- 文件上传——Spring MVC跨服务器 2020-04-28
- 基于netty实现rpc框架-spring boot客户端 2020-04-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash