用Go+WebSocket快速实现一个chat服务
前言在 go-zero 开源之后,非常多的用户询问是否可以支持以及什么时候支持 websocket,终于在 v1.1.6 里面我们从框架层面让websocket 的支持落地了,下面我们就以 chat 作为一个示例来讲解如何用 go-zero 来实现一个 websocket 服务。整体设计我们以 zero-example 中的 chat 聊天室为例来一步步一讲解 websocket 的实...
2024-01-10图片该如何优化来提高网站性能
目录概述什么是图像压缩JPEG/JPGJPG 的优点JPG 使用场景JPG 的缺陷使用 MozJPEG 压缩 jpegPNG (PNG-8 与 PNG-24)PNG 的优缺点PNG 应用场景使用 pngquant 优化 PNG 图像WebPWebP 的优点将 WebP 图像提供给支持它们的浏览器提供html格式的WebP图像概述图像是web上提供的最基本的内容类型之一。他们说一张图片胜过千言万语。...
2024-01-10elementui实现预览图片组件二次封装
起因在elementui组件库中,el-image组件有个预览图片功能,比较简洁,但是和图片绑定在一起,我们只想要一个单纯的预览组件,传递一个图片,通过事件方式,显示大图分析通过查看elementui的代码,发现在image(el-image组件)目录中里面有一个image-viewer组件, el-image组件的预览功能也是通过这一个组件...
2024-01-10解决antd 下拉框 input [defaultValue] 的值的问题
项目中有下拉框跟input需要回显,所以用到defaultValue这个默认值,在后台调接口调到defaultValue这个值给select设置,但是不好使 解决方法直接用value 先加载选中的条目再加载默认值 初始的时候选中调模是空所以就会加载默认值 这样就解决了 但是在选择下拉的时候 要给scoreFrom值补充知识:antd Form组件...
2024-01-10浅谈vue项目,访问路径#号的问题
刚入手vue,有好多的疑问,目前遇到的是vue项目启动之后,输入http://ip:port,我发现浏览器里面显示的地址栏竟然是http://ip:port/#/,这个”/#/“不知道是什么东西,于是百度查了一下。原因:对于vue开发的单页面应用,我们在切换不同的页面的时候,可以发现html永远只有一个,这也正是称之为单页面的...
2024-01-10IDEA通过maven构建JavaWeb项目步骤详解
介绍 maven是用来管理项目的工具。我们可以通过maven来管理我们项目中jar包的依赖,也可通过maven来构建项目,提高了项目的可移植性,是当下JavaWeb项目开发不可缺少的工具。下面就来简单学习一下怎么通过idea中的maven来构建一个JavaWeb项目。maven构建JavaWeb项目步骤1.打开idea开发工具,选择File-》New-...
2024-01-10详谈Java中的二进制及基本的位运算
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的...
2024-01-10js-tab选项卡
说道tab选项卡,顾名思义,就是切换不同内容分类,想必学过前端的都知道,tab有很多方法可以实现,最近刚跟师傅学了一种,感觉很简便,很实用哦。一、先看一下结果二、可以根据图来布局,首先上面标签和下面内容,需要注意的是点击上面a标签的链接和下面div的id一一对应起来,三、就是最...
2024-01-10Java图形界面开发之简易记事本
在学习了Java事件之后,自己写了一个极其简单的记事本。用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener。代码如下:package com.package3; /* * 功能:简易记事本的开发,可以保存文件,打开文件,退出记事本 * author:ywq */ import javax.swing.*; import java.awt.*; import java.awt.event.*; ...
2024-01-10详解Java中synchronized关键字的死锁和内存占用问题
先看一段synchronized 的详解:synchronized 是 java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待...
2024-01-10移动基带安全研究系列文章之概念与系统篇
作者:阿里安全 谢君公众号:vessial的安全Trash Can背景随着5G大浪潮的推进,未来万物互联将会有极大的井喷爆发的可能,而移动基带系统作为连接世界的桥梁,必将成为未来非常重要的基础设施,而基础设施的技术自主能力已经上升到非常重要的国家层面上的战略意义,从美国对待中国的通信产商...
2024-01-10关于语句 while((*s++ = *t++) != '\0') 运算顺序的疑问
字符串拷贝操作test1void test1(char *s, char *t) { while((*s++ = *t++) != '\0') ; }void test2(char *s, char *t) { while((*(s++) = *(t++)) != '\0') ; }01 这两个函数都可以完成操作,但是test2中(s++)和(t++)为什么没有在 (*s = *t) 之前执行?(如果在赋值之前执行应该第一个字符无法被复制才对吧)02 网上有对test1...
2024-01-10关于在sublime text2中配置C编译环境,运行含有 scanf 的C程序的问题
本人在sublime text2中配置C编译环境,测试运行了一个含有 scanf 的C程序的问题,结果没有让我输入,直接自己运行结束运行结果截图:回答:配置 gcc, 'g++' 环境在 sublime 中编写代码切换到相应目录,运行 g++ test.cpp (编译命令可以自己去查找一下)生成 a.exe (当然可以通过编译命令换名字)输入 a.exe,然...
2024-01-10Linux下的su - 以后的PATH环境变量的问题
以下的程序都是在一个docker容器中跑的1.首先在root 的权限在运行:$su - scidb -c "echo $PATH" 2.接下来我用了测试脚本:运行脚本:这两处的环境变量都不一样。3.接下来我切换到scidb的用户权限下来查看scidb的PATH的值我有个命令必须要在有后面的那个环境中才能运行成功, 不然会报没找到命令。。。只...
2024-01-10ubuntu20.04如何安装php的Yaf扩展?
我按照 鸟哥官方教程 编译通过了yaf扩展而且已经安装到扩展包里了可是为什么phpinfo中就是不显示啊? 网上说的 修改php.ini然后重启php-fpm和nginx我也都操作了 我用的是ubuntu系统 加nginx php7.4求大牛解答....研究了一天了回答:你在php.ini里面添加extension=yaf.so了吗?...
2024-01-10IDE(VSCode和webstorm)错误提示: [ts] 找不到模块“@angular/core”
在一个Angular2项目中,import导入node_modules里面的依赖时,IDE出现很多错误提示:“[ts] 找不到模块 XXX ”,还有 “[ts] 对修饰器的实验支持是一项将在将来版本中更改的功能。设置 "experimentalDecorators" 选项以删除此警告。”但是项目是可以正常运行起来的,求解答。这是项目内的tsconfig.json:回答:打...
2024-01-10vscode 格式化python代码时,会将lambda表达式转换为def,如何禁止这个转换?
问题描述vscode 在使用Alt+Shift+F自动格式化代码的时候,会将lambda表达式转换为def形式如何禁止这种转换?例如a=lambdax:x+1格式化之后就成了defa(x): return x+1回答:(⊙﹏⊙) 这种东西。你要想着他肯定是可以配置的。首先你得找到,是什么可以让你Alt+Shift+F去格式化代码的。找到了,pip install -U aut...
2024-01-10img图片自动旋转的问题
在h5里面img加载服务器返回的网络地址图片,在页面上显示效果如下:但是我直接访问图片地址的时候却是横着显示的图片我现在需要的是直接访问地址时那样横着显示图片。求大佬帮我看看回答:对于这个问题最后发现服务器本来就是返回的竖着的图片 至于为什么直接访问时却是横着的 应该是浏览...
2024-01-10JDK中注解@Contended是干什么的?怎么使用?
问题如图:JDK中注解@Contended是干什么的?怎么使用? 这个注解还是在jdk1.8中加入的呢。。附上代码:回答:避免伪共享(false sharing)。先引用个伪共享的解释:缓存系统中是以缓存行(cache line)为单位存储的。缓存行是2的整数幂个连续字节,一般为32-256个字节。最常见的缓存行大小是64个字节。当...
2024-01-10job调度报错怎么处理
handling the first 1 triggers that missed their scheduled fire-timejob一直执行好好地,突然有一天就日志就输出这个应用重启本来是好使了,但第二天出现一个奇怪的问题,redis中会出现数据积压,到30多万,他自己又在处理,处理完了有积压30多万,然后又在处理,不知道什么情况,怎么解决回答:请问楼主这个问...
2024-01-10