首页 > 其他分享 >HTML5的WebSocket使用

HTML5的WebSocket使用

时间:2023-02-25 16:02:33浏览次数:44  
标签:websocket log WebSocket HTML5 使用 var console div socket

index.html(客户端)

 1 <!DOCTYPE html>
 2 <html lang="en">
 3   <head>
 4     <meta charset="UTF-8" />
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge" />
 7     <title>Document</title>
 8     <style>
 9       div {
10         width: 200px;
11         height: 200px;
12         border: 1px solid #000;
13       }
14     </style>
15   </head>
16   <body>
17     <!-- 输入内容 -->
18     <input type="text" placeholder="输入你的内容" />
19     <!-- 发送请求 -->
20     <button>发送请求</button>
21     <!-- 显示结果 -->
22     <div></div>
23 
24     <script>
25       var input = document.querySelector('input')
26       var button = document.querySelector('button')
27       var div = document.querySelector('div')
28       // 演示websocket在浏览器端如何使用
29       // H5已经直接提供了websocket的API,所以我们可以直接去使用
30 
31       // 1. 创建websocket实例
32       // 参数1: websocket的服务地址
33       // 服务器使用node配合nodejs-websocket使用
34       var socket = new WebSocket('ws://localhost:3000')
35 
36       // 2. open: 当和websocket服务连接成功的时候触发
37       socket.addEventListener('open', function() {
38         div.innerHTML = '连接服务成功了'
39       })
40 
41       // 3. 主动的给websocket服务发送消息
42       button.addEventListener('click', function() {
43         var value = input.value
44         socket.send(value)
45       })
46 
47       // 4. 接收websocket服务的数据
48       socket.addEventListener('message', function(e) {
49         console.log(e.data)
50         div.innerHTML = e.data
51       })
52 
53       socket.addEventListener('close', function() {
54         div.innerHTML = '服务断开连接'
55       })
56     </script>
57   </body>
58 </html>

客户端(node)

首先

1 npm i nodejs-websocket

app.js

 1 /* 
 2   开发websocket服务端程序
 3 */
 4 const ws = require('nodejs-websocket')
 5 const PORT = 3000
 6 
 7 // 创建了websocket服务
 8 // 1. 能够给浏览器主动的发送数据
 9 // 2. 能够接收到浏览器给我发送的数据
10 var server = ws.createServer(conn => {
11   console.log('接收到了新的连接')
12 
13   // text事件当接收到了浏览器端的数据的时候,就会触发
14   conn.on('text', data => {
15     console.log(data)
16     // 如何给浏览器发送数据
17     conn.send(data.toUpperCase() + '!!!!')
18   })
19 
20   conn.on('close', () => {
21     console.log('关闭了连接')
22   })
23 
24   conn.on('error', () => {
25     console.log('连接异常')
26   })
27 })
28 
29 server.listen(PORT, () => {
30   console.log('服务启动成功,监听的端口是' + PORT)
31 })

打开终端运行node app.js即可开启服务器测试webSocket

 

效果

进入页面

 

 输入了文字点击发送请求

 

标签:websocket,log,WebSocket,HTML5,使用,var,console,div,socket
From: https://www.cnblogs.com/jackal1234/p/17154588.html

相关文章

  • SQLmap的使用
    sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入。目前支持的数据库有MySql、Oracle、Access、PostageSQL、SQLServer、IBMDB2、SQLite......
  • Access数据库使用
    简单介绍创建表,设置表属性,内容双击打开软件,新建空白数据库上面创建--表,右侧右键点击表1,选择保存,输入表名称。左侧右键点击表--打开设计视图设置表内容及格式,首行默认为......
  • Ubuntu 16.04上安装openjdk7--编译Android6.0使用
    问题背景:需要在编译服务器上编译android6.0代码。这个版本需要使用openjdk7。参考来自官网的信息:https://source.android.com/docs/setup/start/older-versions?hl=zh-c......
  • mysqldump使用帮助
    导出sql文件可以使用mysqldump。主要有如下几种操作:导出整个数据库(包括数据库中的数据):mysqldump-h主机-uusername-ppassworddbname>dbname.sql;导出数据库中的......
  • Autolayout代码编写基本使用
    第一种代码如下:UIView*redView=[[UIViewalloc]init];redView.translatesAutoresizingMaskIntoConstraints=NO;redView.backgroundColor=UIColor.redColor;[self.v......
  • ThreadLocal基本使用和源码解读
    1基本使用ThreadLocal的作用是保存线程本地变量,在多线程在CPU时间分片交替执行过程中,每个线程只能获取到它自己的数据。ThreadLocal的使用非常简单:创建ThreadLocal。......
  • pgpool-II使用问题之SCRAM方法错误
    本机环境:centos7.9,postgres14,pgpool-II,流复制,一主一从假设postgres同步已经做好,pgpool-II能启动SCRAM方法错误当您使用psql或navicat账密方式连接pgpool时,会有个scram身......
  • 记录一下使用VScode运行C/C++程序
    三个文件:c_cpp_properties.json、launch.json、tasks.json1.c_cpp_properties.json的生成第一步:   第二步   则会生成   2.tasks.json  3.la......
  • 我有一篇Java Stream使用手册,学了就是你的了!
    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。简介日常编程工作中,Java集合会经常被使用到,且经常需要对集合做一些类似过滤、排序、对象转换之类......
  • LQB04 定时器代码使用01,定时闪烁灯和定时框架。
    1、STC-ISP软件定时函数的生成,定时案例库的学习;2、定时器0,闪烁LED1;定时500ms,间隔定时器1,闪烁LED2,定时800ms,间隔。3、快速搭建框架。这里只讲解直接的使用,不讲解内部细节......