前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nodejs + WebSocket简单介绍及示例 – 第一章

Nodejs + WebSocket简单介绍及示例 – 第一章

作者头像
Javanx
发布2019-09-04 16:44:28
2.4K0
发布2019-09-04 16:44:28
举报
文章被收录于专栏:web秀web秀

WebSocket是什么?

如果说ajax像手机发短信一样,发送信息,获取信息,那么websocket技术则是打电话这样。WebSocket要达到的目的是让用户不需要刷新浏览器就可以获得实时更新。

Nodejs + WebSocket简单介绍及示例 - 第一章
Nodejs + WebSocket简单介绍及示例 - 第一章

在WebSocket以前你可能会使用ajax进行轮询(包括现在有些没有集成WebSocket的软件),这就造成了服务器的多重压,大量消耗服务器带宽和资源。

面对这种状况,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽并实现真正意义上的实时推送。

WebSocket协议本质上是一个基于TCP的协议,它由通信协议和编程API组成,WebSocket能够在浏览器和服务器之间建立双向连接, 以基于事件的方式,赋予浏览器实时通信能力。既然是双向通信,就意味着服务器端和客户端可以同时发送并响应请求,而不再像HTTP的请求和响应。

WebSocket 事件

事件

描述

Socket.onopen

连接建立时触发

Socket.onmessage

客户端接收服务端数据时触发

Socket.onerror

通信发生错误时触发

Socket.onclose

连接关闭时触发

WebSocket 方法

方法

描述

Socket.send()

使用连接发送数据

Socket.close()

关闭连接

Nodejs + WebSocket 示例

Nodejs + WebSocket简单介绍及示例 - 第一章
Nodejs + WebSocket简单介绍及示例 - 第一章

这里我们先安装一下WebSocket模块:

代码语言:javascript
复制
npm i nodejs-websocket -S

新建一个index.js作为服务端:

代码语言:javascript
复制
var ws = require("nodejs-websocket");
console.log("开始建立连接...")

var server = ws.createServer(function(conn){
  conn.on("text", function (str) {
    console.log("message:"+str)
    conn.sendText("My name is Web Xiu!");
  })
  conn.on("close", function (code, reason) {
    console.log("关闭连接")
  });
  conn.on("error", function (code, reason) {
    console.log("异常关闭")
  });
}).listen(8001)
console.log("WebSocket建立完毕")

客户端

代码语言:javascript
复制
if(window.WebSocket){
  var ws = new WebSocket('ws://localhost:8001');

  ws.onopen = function(e){
    console.log("连接服务器成功");
    // 向服务器发送消息
    ws.send("what`s your name?");
  }
  ws.onclose = function(e){
    console.log("服务器关闭");
  }
  ws.onerror = function(){
    console.log("连接出错");
  }
  // 接收服务器的消息
  ws.onmessage = function(e){
    let message = "message:"+e.data+"";
    console.log(message);
  }   
}
Nodejs + WebSocket简单介绍及示例 - 第一章
Nodejs + WebSocket简单介绍及示例 - 第一章

这样,客户端发送:ws.send("whats your name?");,服务端回复:conn.sendText("My name is Web Xiu!");`,只要连接不断开,就可以一直通信。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年4月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • WebSocket是什么?
  • WebSocket 事件
  • WebSocket 方法
  • Nodejs + WebSocket 示例
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档