实现webIM技术小结——websocket 实例篇

Socket.io 用于浏览器与 Node.js 之间实现实时通信。

Socket.io介绍

Socket.io 是一个完全由 JavaScript 实现、基于 Node.js、支持 WebSocket 协议的用于实时通信、跨平台的开源框架,它包括了客户端的 JavaScript 和服务器端的 Node.js。

Socket.io 设计的目标是支持任何的浏览器,任何 Mobile 设备。支持主流的 PC 浏览器 (IE,Safari,Chrome,Firefox,Opera等),Mobile 浏览器(iphone Safari/ipad Safari/Android WebKit/WebOS WebKit等)。

但是,WebSocket 协议是 HTML5 新推出的协议,浏览器对它的支持并不完善,由此可以看出,Socket.io 不可能仅仅是对 WebSocket 的实现,它还支持其他的通信方式,如上篇博客介绍过的 ajax 轮询和 Long Polling   https://blog.csdn.net/PINGER0077/article/details/90270693。根据浏览器的支持程度,自主选择使用哪种方式进行通讯。

Socket.io 支持的通信方式:

  • WebSocket
  • Adobe Flash Socket
  • AJAX long-polling
  • AJAX multipart streaming
  • Forever IFrame
  • JSONP polling

socket.io的使用

node端使用express框架

引入

服务端:npm install --save socket.io

浏览器端:import io from 'socket.io-client';    const socket = io('ws://localhost:9093')

创建io服务器

let app = require('express')();
let server = require('http').Server(app);
let io = require('socket.io')(server);
app.get('/', function(req, res) {
    res.sendFile(_dirname + '/index.html');
});
server.listen(3000, function() {
    console.log('App listenning on port 3000!');
));

服务端

Socket.io提供了默认事件(如: connect,message, disconnect)。另外,socket.io允许发送并接收自定义事件

监听客户端连接,回调函数会传递本次连接的socket

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

给所有客户端广播消息

io.socket.emit('string', data);
io.emit('string', data);

接收客户端发送的自定义事件

​io.on('connection', function(socket){});

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值