美文网首页
基于 nodejs 的 websocket 服务器

基于 nodejs 的 websocket 服务器

作者: 张_何 | 来源:发表于2023-03-01 23:08 被阅读0次
const WebSocket = require('ws')

const WebSocketServer = WebSocket.Server;

//在4000端口上打开了一个WebSocket Server,该实例由变量wss引用。
const wss =new WebSocketServer({
    port:4000
})


//如果有WebSocket请求接入,wss对象可以响应connection事件来处理这个WebSocket:
wss.on('connection',function(ws){  //在connection事件中,回调函数会传入一个WebSocket的实例,表示这个WebSocket连接。
    console.log(`[SERVER] connection()`);
    candleMsg()

    ws.on('message',function(message){  //我们通过响应message事件,在收到消息后再返回一个ECHO: xxx的消息给客户端。
        console.log(`[SERVER] Received:${message}`);
        setInterval(()=>{
            // ws.send(`ECHO:${message}` ,(err)=>{
            //     if(err){
            //         console.log(`[SERVER] error:${err}`);
            //     }
            // })
            ws.send(candleMsg(), (err)=>console.log(err))
        } , 2000)
    })
})

const candleJson = require("./data/candle_stick.json");

const Low = 600
const High = 2000

const candleMsg = () => {
    let data = candleJson.data

    data.high = getRandom()

    let low = getRandom()

    data.low = low > data.high ? data.high  : low

    return JSON.stringify(candleJson)
}

const getRandom = ()=> Math.random() * (High - Low) + Low


/// 首先执行 npm install ws --save
/// 然后执行 node index.js 启动服务器,服务器启动后控制台没有任何输出
/// 连接成功后要先向服务器 发送一个消息后才会推送数据

http://oktools.net/websocket

ws://localhost:4000

相关文章

网友评论

      本文标题:基于 nodejs 的 websocket 服务器

      本文链接:https://www.haomeiwen.com/subject/fokpkdtx.html