展开目录
nodejs 长连接
nodejs长连接
X
陈尼玛的博客
记录开发生涯的踩坑经历,用时间来验证成长
加载中
  1. srv.js:

    const sep='\r\n'
    const html=`<div id="log"></div><script>
    const xhr=new XMLHttpRequest
    xhr.open('POST', '/msg', 1)
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
    let cur=0, sep=${JSON.stringify(sep)}
    xhr.withCredentials=!0
    xhr.onreadystatechange=_=>{
     if(xhr.readyState<3) return;
     const xr=xhr.response
     for(;;) {
       const xr1=xr.substr(cur, xr.length)
       const n=xr1.indexOf(sep)
       if(n<0) break
       const data=xr1.substr(0, n)
       cur+=n+sep.length
       if(data.match(/^-+$/)) continue
       log.innerHTML+="<div>### "+data+"</div>"
     }
    }
    xhr.send()
    </script>`
    require('http').createServer(async (req, res)=>{
    if(!req.url.match(/\/msg/)) return res.end(html)
    res.write('-'.repeat(1024)+sep)
    for(let i=0; i<6; i++) {
     res.write(`${i*11}`+sep)
     await new Promise(r=>setTimeout(r, 1000))
    }
    res.end('--end--'+sep)
    }).listen(7777)
  2. 运行:

    node srv
  3. 打开浏览器 http://127.0.0.1:7777/ ,每隔一秒从服务器接收一行数据,最终效果效果如下:

    ### 0
    ### 11
    ### 22
    ### 33
    ### 44
    ### 55
    ### --end--

相关文档

暂无

随便看看

  1. cnpm 立即同步

  2. react项目webpack打包时拆分异步加载的文件

  3. 安卓文字偏上,文字顶部被遮罩

  4. ipsec vpn 添加新账号

  5. css3 文字渐变色

  6. SSL certificate problem: self signed certificate in certificate chain

  7. html5 全屏代码

  8. heroku查看app使用时间

  9. webrtc服务搭建

  10. 单页应用的单向数据流的流程图

  11. cdn资源列表

  12. TIME_WAIT过多

  13. ssl 证书生成方式

  14. mongodb2.4 添加用户

  15. mysql导出csv文件

  16. mac搜索局域网内的主机

  17. 猴子选大王算法问题

  18. 随机取某个概率区间的代码

畅言模块加载中