WebSocket

基于 websocket-node实现

新建项目websocket-node

mkdir websocket-node

进入目录

cd websocket-node

初始化项目

npm init -y

下载依赖

npm install [email protected]

新建index.js文件

服务端代码

var Websocket = require('websocket').server;
var http = require('http');

var httpServer = http.createServer().listen(8080,function(){
  console.log('http:127.0.0.1:8080')
});

var wsServer = new Websocket({
  httpServer: httpServer,
  autoAcceptConnections: false
});

var conArr = []; // 连接池

wsServer.on('request', function(request){
  var connection = request.accept();
  conArr.push(connection); // 将创建的连接添加到连接池
  connection.on('message', function(msg){
    console.log(msg)
    for(let i=0;i

前端代码




  Document


  
  


基于sockrt.io实现

同上新建项目,安装依赖

npm install [email protected]   // 注意版本!

服务端代码

const { createServer } = require("http");
const { Server } = require("socket.io");

const httpServer = createServer();
const io = new Server(httpServer, {
  cors: {
    origin: "*", // socket.io需要配置跨域
    methods:["GET","POST"]
  }
});

io.on("connection", (socket) => {
  socket.on('sendMsg', (data)=>{
    // console.log(data)
    // socket.emit('pushData',data) // 向单个连接发送消息
    io.emit('pushData',data) // 向所有连接发送消息
  })
});

httpServer.listen(3000, function(){
  console.log('http://127.0.0.1:3000')
});

前端代码




  Document
  
  


  
  


更推荐使用socket.io的方式,不需要手动处理连接池。

socket.io官方文档

你可能感兴趣的:(Node,websocket)