前端

socket.io

2020-03-31  本文已影响0人  Daeeman

关于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')
  }}
上一篇下一篇

猜你喜欢

热点阅读