android socket框架_即时通讯框架SocketIO的入门学习

一、介绍

学习socket之前,我们先了解下网络七层是哪七层,而socket又是位于哪?

网络七层:

  1. 应用层
  2. 表示层
  3. 会话层
  4. 传输层
  5. 网络层
  6. 数据链路层
  7. 物理层

而socket位于应用层与传输层之间,简写SSL(Secure Sockets Layer 安全套接层),而其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

二、Socket.IO 是什么

Socket.IO是一个库,基于 Node.js 的实时应用程序框架。可以在浏览器和服务器之间实现实时,双向和基于事件的通信。它适用于每个平台、浏览器或设备,同样注重可靠性和速度。它包括:

  • Node.js 服务器
  • 浏览器的Javascript客户端库(也可以从Node.js运行)
d88c1fc157fde34fe1d6af3fb97c3e4f.png

三、起源

WebSocket 的产生源于 Web 开发中日益增长的实时通信需求,对比基于 http 的轮询方式,它大大节省了网络带宽,同时也降低了服务器的性能消耗。

WebSocket 协议在2008年诞生,2011年成为国际标准。虽然主流浏览器都已经支持,但仍然可能有不兼容的情况,为了兼容所有浏览器,就诞生SocketIO。

SocketIO将WebSocket、AJAX和其它的通信方式全部封装成了统一的通信接口,也就是说,我们在使用SocketIO时,不用担心兼容问题,底层会自动选用最佳的通信方式。

四、Socket.io有什么特点

  • 易用性:Socket.io封装了服务端和客户端,使用起来非常简单方便。
  • 跨平台:Socket.io是跨平台的,可以实现多平台的即时通讯,Socket.io支持跨平台,这就意味着你有了更多的选择,可以在自己喜欢的平台下开发实时应用。由于 iOS 端进行 socket 编程主要使用 GCDAsyncSocket 框架,但要实现 Android、iOS、web 多平台的通讯,还是选择统一的框架或协议比较好。
  • 自适应:Socket.io 实现了实时双向的基于事件的通讯机制,是基于 webSocket 的封装,但它不仅仅包括 webSocket,还对轮询(Polling)机制以及其它的实时通信方式封装成了通用的接口,并且在服务端实现了这些实时机制的相应代码,它会自动根据浏览器从WebSocket、AJAX长轮询、Iframe流等等各种方式中选择最佳的方式来实现网络实时应用,非常方便和人性化,而且支持的浏览器最低达IE5.5。

五、Socket.io安装

首先要安装Node.js,然后再用如下命名安装Socket.io

npm install socket.io

六、Socket.io示例

服务器端,sever.js

var http = require('http').createServer(app);var io = require('socket.io')(http);app.get('/', (req, res) => {  res.sendFile(__dirname + '/index.html');});io.on('connection', (socket) => {  console.log('a user connected');});http.listen(3000, () => {  console.log('listening on *:3000');});

浏览器端,index.html

      Socket.IO chat      Send              

七、运行

1、cd 到文件目录下

2、node server.js

3、打开浏览器,输入http://localhost:3000,点击send按钮

4、演示效果如下

服务器端

e68a6b1e7cd3d5fe2e11592ba710c413.png

浏览器端:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值