git

node.js创建websocket 的服务

Nodejs Websocket包

ws.createServer([options], [callback])
The callback is a function which is automatically added to the “connection” event.

前端代码

1. 创建实例、打开连接
this.websocket = new WebSocket('ws://127.0.0.1:8001');
# 实例回调
1.1 连接成功
this.websocket.onopen = () => {this.setMessageInnerHTML('WebSocket连接成功');
};
1.2 接收服务端消息
this.websocket.onmessage = (event) => {this.setMessageInnerHTML(event.data);
};
2. 关闭连接
this.websocket.close();
3. 发送消息
this.websocket.send(message);

完整代码

  • 后端
var ws = require('nodejs-websocket');
console.log('开始建立连接...')ws.createServer(function (conn) {conn.on('text', function (str) {// 收到文本时触发,str 时收到的文本字符串console.log('浏览器给服务端收到的信息为:' + str)conn.sendText('服务器返回内容')})conn.on('close', function (code, reason) {console.log('关闭连接', code, reason)});conn.on('error', function (code, reason) {// 发生错误时触发,如果握手无效,也会发出响应console.log('异常关闭', code, reason)});
}).listen(8001)
console.log('WebSocket建立完毕');
  • 前端
<template><div><hr /><button @click="openWebSocket">打开WebSocket连接</button><hr />Welcome<br /><input id="text" type="text" /><button @click="send">发送消息</button><hr /><button @click="closeWebSocket">关闭WebSocket连接</button><hr /><h1 id="message"></h1></div>
</template><script>
export default {data() {return {websocket: null,};},mounted() {this.openWebSocket();},methods: {//将消息显示在网页上setMessageInnerHTML(innerHTML) {document.getElementById('message').innerHTML += innerHTML + '<br/>';},//关闭WebSocket连接closeWebSocket() {this.websocket.close();},//发送消息send() {var message = document.getElementById('text').value;this.websocket.send(message);},//打开WebSocket连接openWebSocket() {//判断当前浏览器是否支持WebSocketif ('WebSocket' in window) {this.websocket = new WebSocket('ws://127.0.0.1:8001');} else {alert('当前浏览器 Not support websocket');}//连接发生错误的回调方法this.websocket.onerror = () => {this.setMessageInnerHTML('WebSocket连接发生错误');};//连接成功建立的回调方法this.websocket.onopen = () => {this.setMessageInnerHTML('WebSocket连接成功');};//接收到消息的回调方法this.websocket.onmessage = (event) => {this.setMessageInnerHTML(event.data);};//连接关闭的回调方法this.websocket.onclose = () => {this.setMessageInnerHTML('WebSocket连接关闭');};//监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。window.onbeforeunload = () => {this.closeWebSocket();};},},
};
</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {margin: 40px 0 0;
}
ul {list-style-type: none;padding: 0;
}
li {display: inline-block;margin: 0 10px;
}
a {color: #42b983;
}
</style>

也可以在前端引入socket.io的cdn,后端用express搭建(也要require socket.io)

前端代码:

websocket demo相关推荐

  1. 大道至简 知易行难 C# 完成WebSocket demo 用GoEasy实现Hello world

    在现在Time cost和Labor cost进入项目并占据重要位置的开发理念里,当一款项目的目标.理念以及开发的要求非常明确时,怎样减少时间.人力成本以及降低开发风险以及成为一个项目在开发初期需要确 ...

  2. C# 完成WebSocket demo 用GoEasy实现Hello world

    在现在Time cost和Labor cost进入项目并占据重要位置的开发理念里,当一款项目的目标.理念以及开发的要求非常明确时,怎样减少时间.人力成本以及降低开发风险以及成为一个项目在开发初期需要确 ...

  3. 大道至简 知易行难 JAVA 完成WebSocket demo 用GoEasy实现Hello world

    一个项目在方向.目标和运营理念已经定义了的时候,我们会去考虑项目本身的周期和开发成本.当然,所有的公司都会在项目能够达成目标的同时尽量减少人力成本和时间成本,其中,就会有用到三方的软件和框架. 大道至 ...

  4. JAVA 完成WebSocket demo 用GoEasy实现Hello world

    一个项目在方向.目标和运营理念已经定义了的时候,我们会去考虑项目本身的周期和开发成本.当然,所有的公司都会在项目能够达成目标的同时尽量减少人力成本和时间成本,其中,就会有用到三方的软件和框架. 大道至 ...

  5. websocket demo,websocket封装,jquery下的websocket封装

    一.websocket封装github地址:https://github.com/yquanmei/websocket-demo. 二.需求 最近公司要求加入websocket的页面有点多,每次都重复 ...

  6. websocket心跳链接代码_WebSocket原理与实践(五)--心跳及重连机制

    在使用websocket的过程中,有时候会遇到网络断开的情况,但是在网络断开的时候服务器端并没有触发onclose的事件.这样会有:服务器会继续向客户端发送多余的链接,并且这些数据还会丢失.所以就需要 ...

  7. 用node实现websocket协议

    协议 WebSocket是一种基于TCP之上的客户端与服务器全双工通讯的协议,它在HTML5中被定义,也是新一代webapp的基础规范之一. 它突破了早先的AJAX的限制,关键在于实时性,服务器可以主 ...

  8. 最近のWebSocket事情についてまとめとく

    最近のWebSocket事情についてまとめとく HTML5, WebSocket id:Jxck(@Jxck_)さんからのリクエストもありましたので.現状でのWebSocket情報をまとめておきます. ...

  9. HTML5 WebSocket之HelloWorld

    原文http://fallenlord.blogbus.com/logs/110768932.html 方案 要实现一个WebSocket有很多方案,客户端方面可以用原生的WebSocket对象,也可 ...

最新文章

  1. 智能工厂4.0:数字世界和物理世界的融合【附下载】
  2. POJ 1661 Help Jimmy
  3. stopstart按钮怎么用_烟雾报警器一直响吵人!怎么彻底给关掉?
  4. python 霍夫直线变换_OpenCV-Python 霍夫线变换 | 三十二
  5. 想重装java jdk_jdk怎么重新安装
  6. 2017.9.9 幸运数字 失败总结
  7. (翻译) MongoDB(15) 在 Tarball 上安装MongoDB社区版
  8. Delphi多媒体设计之播放WAVE文件(API)
  9. 选择操作、投影操作、交操作
  10. 组成原理---补码加减法,原码一两位乘法,补码一两位乘法,754标准
  11. foobox 4.2(foobar2000 CUI配置)
  12. 怎么看计算机电源型号,电脑电源铭牌怎么看?台式机电源铭牌知识扫盲 拒绝虚标!...
  13. SpringBoot小程序推送信息
  14. 数学板块学习之FWT
  15. 设计实现抽象数据类型“有理数”
  16. Python解决羊车门问题
  17. STL学习笔记7 ——STL算法(一)
  18. %格式化和format格式化--python
  19. 使用脚本,直接修改注册表的值---设置win10背景色(保护色)
  20. linux 文件 查找内容替换,linux递归查找文件内容并替换

热门文章

  1. 操作系统锁的实现方法有哪几种_「从入门到放弃-Java」并发编程-锁-synchronized...
  2. Pygame 使用Djkstra广度搜索寻找迷宫(相对)最短路径
  3. android使用桢布局,Android 常用布局
  4. 【caffe-Windows】关于LSTM的简单小例子
  5. 如何快糙好猛的使用Shiqi.Yu老师的公开人脸检测库(附源码)
  6. 一站式 Java Web 框架 firefly-2.0_07发布
  7. GNU make manual 翻译( 一百零四)
  8. Winodws Socket I/O模型的整理
  9. ewebeditor遍历路径漏洞
  10. 微信小程序的基础 (一)