默认

WebSocket详解(一):初步认识WebSocket技术

查看数: 379317 | 评论数: 23 | 收藏 37
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-05-25 16:27

正文摘要:

1、前言 HTML5规范在传统的web交互基础上为我们带来了众多的新特性,随着web技术被广泛用于web APP的开发,这些新特性得以推广和使用,而websocket作为一种新的web通信技术具有巨大意义。 本文将带您认识WebSock ...

评论

LanjunLi 发表于 1 年前
我也只是看到这篇文章的代码,拿来实验一下。建议把这块有问题的代码移除。
JackJiang 发表于 1 年前
nodejs话,就用socket.io吧,这是最好的,别用其它那些野鸡websocket库了
LanjunLi 发表于 1 年前
Nodejs 服务端代码:
let ws = require("nodejs-websocket");
let server = ws.createServer((conn) => {
  console.log("new connection");
  conn.on("text", (msg) => {
    broadcast(server, msg);
  });

  conn.on("close", () => {
    console.log("connection closed");
  });
});

function broadcast(server, msg) {
  server.connections.forEach((conn) => {
    conn.sendText(msg);
  });
}
server.listen(3001)


客户端代码:
  
const ws = new WebSocket("ws://127.0.0.1:3001");
    ws.onopen = function () {
        oUl.innerHTML += "<li>客户端链接成功</li>";
        oSend.onclick = function () {
            if (!/^\s*$/.test(oText.value)) {
                ws.send(oText.value);
            }
        };

    };
    ws.onmessage = function (msg) {
        oUl.innerHTML += `<li>${msg.data}</li>`;
    };
    ws.onclose = function () {
        oUl.innerHTML += "<li>客户端链接断开</li>";
    }


当浏览器刷新客户端端页面时,服务端报出以下错误信息
connection closed
Uncaught Error: read ECONNRESET
  __node_internal_captureLargerStackTrace	
  __node_internal_errnoException	
  onStreamRead	
  callbackTrampoline	
Async call from TickObject
  init	
  emitInitNative	
  emitInitScript	
  nextTick	
  onDestroy	
  Socket._destroy	
  _destroy	
  destroy	
  onStreamRead	
  callbackTrampoline	
Async call from TCPWRAP
  init	
  emitInitNative	

JackJiang 发表于 1 年前
引用:LanjunLi 发表于 2023-05-25 10:02
nodejs-websocket 包在客户端关闭时会导致服务器端发生异常而退出。

什么样的异常,有异常信息吗
LanjunLi 发表于 1 年前
nodejs-websocket 包在客户端关闭时会导致服务器端发生异常而退出。
SamWu 发表于 3 年前
好文,感谢分享
登至必极 发表于 3 年前
感谢分享
JackJiang 发表于 3 年前
引用:gxl_ct001 发表于 2021-02-14 11:18
发现一个错别字:“并且将要跟新的数据以js”中 “根新” 似乎应改为 “更新”。

已勘误,谢谢
gxl_ct001 发表于 3 年前
发现一个错别字:“并且将要跟新的数据以js”中 “根新” 似乎应改为 “更新”。
gxl_ct001 发表于 3 年前
感谢楼主的分享!
derek 发表于 4 年前
很详细,不错的教程
605682883 发表于 6 年前
学习了
network 发表于 6 年前
感谢,感谢
JackJiang 发表于 6 年前
引用:哈盛世三国 发表于 2017-12-29 16:55
如何基于他的node.js库,具体怎么操作

你指的是MobileIMSDK-Web框架吗?
哈盛世三国 发表于 6 年前
如何基于他的node.js库,具体怎么操作
哈盛世三国 发表于 6 年前
您好,你的那个基于node.js的库是什么意思
一devps 发表于 7 年前
websocket刚入门,这篇文件讲解的和明了
rickding 发表于 7 年前
楼主好人啊!
tuna 发表于 7 年前
楼主是个好人
zjjishitongxun 发表于 7 年前
简单易懂,很透彻

返回顶部