web教程:Socket与消息推送

本文介绍了WebSocket技术,它是HTML5提供的一种实现客户端与服务器双向通信的协议,适合实时消息推送。WebSocket相比HTTP协议的长轮询、轮询等方式更高效,但也存在浏览器兼容性问题。文章还探讨了WebSocket的客户端和服务器端实现,并提到了Java的JSR356规范以及开源的Pushlet和SignalR消息推送框架。
摘要由CSDN通过智能技术生成

  B/S结构的软件项目中有时客户端需要实时的获得服务器消息,但默认HTTP协议只支持请求响应模式,这样做可以简化Web服务器,减少服务器的负担,加快响应速度,因为服务器不需要与客户端长时间建立一个通信链接,但不容易直接完成实时的消息推送功能,如聊天室、后台信息提示、实时更新数据等功能,但通过polling、Long polling、长连接、Flash Socket以及HTML5中定义的WebSocket能完成该功能需要。

  一、Socket简介

  Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求。Socket的英文原义是“孔”或“插座”,作为UNIX的进程通信机制。Socket可以实现应用程序间网络通信。

  

  Socket可以使用TCP/IP协议或UDP协议。

  TCP/IP协议

  TCP/IP协议是目前应用最为广泛的协议,是构成Internet国际互联网协议的最为基础的协议,由TCP和IP协议组成:

  TCP协议:面向连接的、可靠的、基于字节流的传输层通信协议,负责数据的可靠性传输的问题。

  IP协议:用于报文交换网络的一种面向数据的协议,主要负责给每台网络设备一个网络地址,保证数据传输到正确的目的地。

  UDP协议

  UDP特点:无连接、不可靠、基于报文的传输层协议,优点是发送后不用管,速度比TCP快。

  二、WebSocket简介与消息推送

  B/S架构的系统多使用HTTP协议,HTTP协议的特点:

  1 无状态协议

  2 用于通过 Internet 发送请求消息和响应消息

  3 使用端口接收和发送消息,默认为80端口

  底层通信还是使用Socket完成。

  

  HTTP协议决定了服务器与客户端之间的连接方式,无法直接实现消息推送(F5已坏),一些变相的解决办法:

  双向通信与消息推送

  轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接。

  优点:后端程序编写比较容易。

  缺点:请求中有大半是无用,浪费带宽和服务器资源。

  实例:适于小型应用。

  长轮询:客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。

  优点:在无消息的情况下不会频繁的请求,耗费资小。

  缺点:服务器hold连接会消耗资源,返回数

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值