关于socket.io
简而言之,socket.io就是基于websocket封装的一个库,主要特点是能够进行实时的双向通讯,主要应用场景有实时的聊天,数据实时分析,数据传输,文件协同合作。
Socket.IO支持实时,双向和基于事件的通信。
它适用于所有平台,浏览器或设备,并同时关注可靠性和速度
一.具有以下优点:
1.实时分析
将数据推送到以实时计数器,图表或日志表示的客户端。
2.即时通讯和聊天
Socket.IO的“ Hello world”是一个仅需几行代码的聊天应用程序。
3.二进制流
从1.0开始,可以来回发送任何Blob:图像,音频,视频。
4.文件协作
允许用户同时编辑文档并查看彼此的更改。
二.安装
1.首先,创建一个package.json描述项目的清单文件。将其放在专用的空目录中(将其称为mine chat-example)。
{ “ name”:“ socket-chat-example”,“ version”:“ 0.0.1”,“ description”:“我的第一个socket.io应用程序”,“ dependencies”:{} }
2.填充属性,使用npm install:
npm安装express@4.15.2
3.创建一个index.js文件来设置我们的应用程序。
var app = require('express')();
var http = require('http').createServer(app);
app.get('/',function(req,res) {
res.send('<h1> Hello world </ h1>');
});
http.listen(3000,功能() { console .log('正在*:3000'收听); });
4.运行,得到http://localhost:3000:
5.连接
//连接websocket后端服务器
this.socket = io.connect('ws://mychat.applinzi.com');
6.登录与注销
//监听新用户登录
this.socket.on('login', function(o){
console.log(o, 'login');
});
//监听用户退出
this.socket.on('logout', function(o){
console.logo(o, 'logout');
});
7.发送登录信息
//告诉服务器端有用户登录
this.socket.emit('login', {userid:this.userid, username:this.username});
8.发送信息
var obj = { userid: this.userid,username: this.username, content: content};
this.socket.emit('message', obj);
9.监听消息发送
//监听消息发送
this.socket.on('message' , function(obj){
console.log(obj,' message')
}}
网友评论