ajax socketio,socket.io使用入门

本文介绍了Socket.IO库,它是基于Node.js的实时应用程序框架,简化了浏览器和服务器之间的双向实时通信。Socket.IO具备易用性、跨平台和自适应性等特点,能自动选择最佳通信方式,确保兼容性。通过一个简单的示例,展示了如何使用Express和Socket.IO创建实时通信应用,包括初始化项目、安装依赖和设置服务器及客户端的交互逻辑。
摘要由CSDN通过智能技术生成

Socket.IO是一个库,基于 Node.js 的实时应用程序框架。可以在浏览器和服务器之间实现实时,双向和基于事件的通信。

1.2、 socket.io有什么特点

易用性:socket.io封装了服务端和客户端,使用起来非常简单方便。

跨平台:socket.io支持跨平台,这就意味着你有了更多的选择,可以在自己喜欢的平台下开发实时应用。

自适应:它会自动根据浏览器从WebSocket、AJAX长轮询、Iframe流等等各种方式中选择最佳的方式来实现网络实时应用,非常方便和人性化,而且支持的浏览器最低达IE5.5。

1.3 起源

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

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

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

二、socketIO简单示例

2.1 初始化项目

mkdir socket

cd socket

npm init -y

2.2 安装依赖

npm install socket.io express path --save-dev

OR

yarn add socket.io express path --save-dev

2.3 使用Express

原因

websocket 依赖http服务器

我们需要创建一个http的服务器,提供握手,静态文件服务等功能

创建app.js文件

let express = require('express')

let path = require('path')

let app = express()

app.use(express.static(__dirname))

app.get('/', function(req, res) {

res.sendFile(path.resolve(__dirname, 'index.html'))

})

let server = require('http').createServer(app)

server.listen(5050)

let io = require('socket.io')(server)

io.on('connection', function(socket) {

console.log('客户端已经连接')

socket.on('message', function(msg) {

console.log(msg)

socket.send('服务端 ' + msg)

})

})

创建index.html文件

webpack App

window.onload = function () {

var socket = io.connect('/');

//监听与服务器端的连接成功事件

socket.on('connect', function () {

console.log('客服端连接成功');

});

// 客服端收到服务器发过来的消息后

socket.on('message', function (message) {

console.log('客服端接收消息 ' + message);

});

//监听与服务器端断开连接事件

socket.on('disconnect', function () {

console.log('断开连接');

});

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值