【HTML5-webscoket实时通信(web)】

  1. websocket是什么?
    就是用来创建网络聊天室,实时通信
  2. websocket的方法有哪些?
    https://developer.mozilla.org/zh-CN/docs/Web/API/WebSockets
  3. 如何实现:(以下实现流程)
    前端:
 		 // 直播中// 聊天websocket()const wsurl = 'wss://...';var websocket = new WebSocket(wsurl);//注意不要加()调用函数,不然会立即调用会报错websocket.onopen = websocketonopen;websocket.onmessage = websocketonmessage;websocket.onerror = websocketonerror;websocket.onclose = websocketonclose;//发送按钮事件$('.sendBtn').click(()=>{send()})// 发送消息function send(){//获取输入框的内容content = $('#content').val()let data = {fd:fd,content:content,courseid: courseid,uid:uid,user_nickname:user_nickname,avatar:avatar,liveuid:liveuid,type:'msg'};//data看需求传什么值,同时与后端协调要什么websocket.send(JSON.stringify(data));//重置输入框$('#content').val('')}// 获取消息function websocketonmessage(e){var data = JSON.parse(e.data);if(data.type =='login'){console.log(data.fd+'进入了聊天室')}if(data.type=='close'){console.log(data.fd+'离开了聊天室')}if(data.type=='msg'){var recev_msg = JSON.parse(data.data);//往页面放发送和接受的消息messageItem(recev_msg.uid,recev_msg)}if(data.type=='num'){console.log(data)}fd = data.fd;if(data.type=='login'){console.log(data.num)// this.$data.msg.push(data.num);}num = data.num;//this.$data.msg.push(data);}// 建立连接function websocketonopen(e){data = {courseid: courseid,uid:uid,type:'login'// user_nickname:user_nickname,// avatar:avatar,};websocket.send(JSON.stringify(data));console.log('链接成功')// this.$data.msg.push("链接成功")}// 关闭链接function websocketonclose(e){}function websocketonerror(e){}
//通过判断uid==uidItem当前用户id和接受的消息id是不是一样的  一样就自己发送的,不一样就是别人发送的
function messageItem(uidItem,item){if(uid==uidItem){// 我发送的$('.live-discussion-content-top').append(`<div class="send-message-content"><div class="receive-message-item"><div class="receive-message-item flex align-items justify-end"><div class="receive-content"><div class="send-user-name">${item.user_nickname}</div><div class="send-content">${item.content}</div></div><div class="receive-photo"><imgsrc="${item.avatar}"alt="用户头像"></div></div></div></div>`)}else{// 接收的信息$('.live-discussion-content-top').append(`<div class="receive-message-content"><div class="receive-message-item flex align-items"><div class="receive-photo"><imgsrc="${item.avatar}"alt="用户头像"></div><div class="receive-content"><div class="user-name">${item.user_nickname}</div><div class="user-content">${item.content}</div></div></div></div>`)}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/166924.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器篇——决策树(六) 细说 评估指标的交叉验证

本小节&#xff0c;细说 评估指标的交叉验证。 三. 评估指标 3. 交叉验证(cross validation) (1). 概念 交叉验证(cross validation, cv) 主要用于模型训练或建模应用中&#xff0c;如分类预测、PCR、PLS 回归建模等。在给定的样本空间中&#xff0c;拿出大部分…

HCIA-RS基础-静态路由协议

摘要&#xff1a;静态路由是一种在网络中广泛应用的路由选择方案&#xff0c;它以其简单的配置和低开销而备受青睐。本文将介绍静态路由的配置方法、默认路由的设置、路由的负载分担和备份策略。通过学习本文&#xff0c;希望可以你能够掌握静态路由的基本概念和在华为模拟器中…

贪心算法个人见解

目录 基本思想&#xff1a; 贪心算法的步骤&#xff1a; 示例&#xff1a; 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种基于贪心策略的算法范式&#xff0c;它在每一步选择中都采取当前状态下的最优选择&#xff0c;而不考虑全局最优解。贪心算法通常适用于那些…

U-Boot 之九 详解 Pinctrl 子系统、命令、初始化流程、使用方法

嵌入式芯片中,引脚复用是一个非常常见的功能,U-Boot 提供一个类似 Linux Kernel 的 Pinctrl 子系统来处理引脚复用功能。正好最近用到了这部分功能,需要移植 Pinctrl 驱动,特此记录一下学习过程。 架构 U-Boot 提供一个类似 Linux Kernel 的 Pinctrl 子系统,用来统一各芯…

Double 4 VR智能互动教学系统在小语种课堂中的教学应用

小语种课堂一直是教育领域的一个难点。由于语言本身的复杂性和文化背景的差异&#xff0c;小语种教学一直是一个挑战。传统的课堂教学方法往往难以激发学生的学习兴趣和动力&#xff0c;教学效果不尽如人意。而Double 4 VR智能互动教学系统为小语种课堂带来了新的可能。 Double…

视频服务网关的三大部署(三)

视频网关是软硬一体的一款产品&#xff0c;可提供多协议&#xff08;RTSP/ONVIF/GB28181/海康ISUP/EHOME/大华、海康SDK等&#xff09;的设备视频接入、采集、处理、存储和分发等服务&#xff0c; 配合视频网关云管理平台&#xff0c;可广泛应用于安防监控、智能检测、智慧园区…

RK WiFi部分信道在部分地区无法使用的原因

不同国家支持的WiFi信道不一样&#xff0c;需要正确设置wificountrycode 修改路径&#xff1a; device\rockchip\common\BoardConfig.mk 修改内容&#xff1a;androidboot.wificountrycodeXX 该属性会被解析为 ro.boot.wificountrycode framework层会在&#xff1a; framewor…

用好语言模型:temperature、top-p等核心参数解析

编者按&#xff1a;我们如何才能更好地控制大模型的输出? 本文将介绍几个关键参数&#xff0c;帮助读者更好地理解和运用 temperature、top-p、top-k、frequency penalty 和 presence penalty 等常见参数&#xff0c;以优化语言模型的生成效果。 文章详细解释了这些参数的作用…

leetcode 343.整数拆分 198.打家劫舍(动态规划)

OJ链接 &#xff1a;leetcode 343.整数拆分 代码&#xff1a; class Solution {public int integerBreak(int n) {int[] dp new int[n1];//每个n&#xff0c;拆分多个整数乘积的最大值dp [0] 0;dp [1] 1; for(int i 2 ; i<n; i){for(int j 0 ; j < i; j){dp[i] Ma…

如何看待数据确权问题?

今年8月&#xff0c;财政部发布了《关于印发<企业数据资源相关会计处理暂行规定>的通知》&#xff0c;将数据规划到公司资产负债表的“资产”项&#xff0c;明确了哪些数据资源可以计入无形资产、存货等资产项&#xff0c;从财务、会计处理角度对企业对数据资源享有的权利…

学习Java第52天,JDBC中statement的使用基本步骤

public class JdbcStatementQueryPart { /* * TODO: 步骤总结 (6步)* 1. 注册驱动* 2. 获取连接* 3. 创建statement* 4. 发送SQL语句,并获取结果* 5. 结果集解析* 6. 关闭资源 */public static void main(String[] args) throws SQLException {//1.注册驱动/…

小程序中的大道理--综述

前言 以下将用一个小程序来探讨一些大道理, 这些大道理包括可扩展性, 抽象与封装, 可维护性, 健壮性, 团队合作, 工具的利用, 可测试性, 自顶向下, 分而治之, 分层, 可读性, 模块化, 松耦合, MVC, 领域模型, 甚至对称性, 香农的信息论等等. 为什么不用大程序来说大道理呢? …

CMS指纹识别方式

一、手工识别 1.robots.txt文件 robots.txt文件我们写过爬虫的就知道,这个文件是告诉我们哪些目录是禁止爬取的。但是大部分的时候我们都能通过robots.txt文件来判断出cms的类型 如: 从wp路径可以看出这个是WordPress的cms 这个就比较明显了直接告诉我们是PageAdmin cms 也…

Python大语言模型实战-记录一次用ChatDev框架实现爬虫任务的完整过程

1、模型选择&#xff1a;GPT4 2、需求&#xff1a;在win10操作系统环境下&#xff0c;基于python3.10解释器&#xff0c;爬取豆瓣电影Top250的相关信息&#xff0c;包括电影详情链接&#xff0c;图片链接&#xff0c;影片中文名&#xff0c;影片外国名&#xff0c;评分&#x…

C语言小练

给定两个数&#xff0c;求这两个数的最大公约数 本算法主要利用辗转相除法求出两个数的最大公约数。 int main(){int m0;int n0;int r0;scanf("%d %d",&m,&n);while(rm%n){mn;nr;} printf("%d\n",n);return 0; } 打印斐波那契数列指定位置的值 …

工作中Git常用命令

Git config --global user.name ‘sn’设置身份名字 Git config--global user.email “ 17909098592qq.com“ 设置邮箱 Git init 创建代码仓库 Ls -al 查看所有目录 Git pull <远程仓库名> <远程分支名>代码更新 Git add file.txt 添加file.txt到git提交器 …

python的requests请求参数带files

踩坑接口请求参数含文件 requests接口请求既有file&#xff0c;也有json。划重点params requests 官网地址 https://requests.readthedocs.io/en/stable/user/quickstart/#post-a-multipart-encoded-file 接口请求既有file&#xff0c;也有json。划重点params import reques…

kali一键部署各种环境和渗透工具

相信各位初入渗透领域的小伙们接触了kali,但是苦于要配置各种环境,安装kali没有的工具,费时费力,博主有时候需要重新部署kali也很苦恼,所以编写一键部署安装kali脚本,下载地址在这里:https://download.csdn.net/download/weixin_59679023/88565320 配置流程: 1、找一…

Linux加强篇002-部署Linux系统

目录 前言 1. shell语言 2. 执行命令的必备知识 3. 常用系统工作命令 4. 系统状态检测命令 5. 查找定位文件命令 6. 文本文件编辑命令 7. 文件目录管理命令 前言 悟已往之不谏&#xff0c;知来者之可追。实迷途其未远&#xff0c;觉今是而昨非。舟遥遥以轻飏&#xff…