- 如何用WHIP协议WebRTC推流到NodeMediaServer
illuspas
MediaServerwebrtc服务器实时音视频音视频
NMSv3.21WHIP协议WebRTC推流指南一、协议实现NMSv3.21基于WHIP协议(WebRTC-HTTPIngestionProtocol)重新实现WebRTC推流功能。二、功能特性客户端开放:支持自定义实现流采集能力:摄像头/麦克风捕获桌面/应用窗口采集Canvas/Video元素捕获支持视频滤镜、AI特效等完整WebRTC功能支持(参考WebRTCSamples)三、配置说明[we
- HTTP协议:深入理解超文本传输协议
需要重新演唱
web#javaweb基础http网络协议网络
HTTP协议:深入理解超文本传输协议在当今的互联网时代,HTTP(HyperTextTransferProtocol,超文本传输协议)是构建Web应用的基石。无论是浏览网页、观看视频还是进行在线交易,HTTP协议都在背后默默地发挥着作用。本文将深入探讨HTTP协议的基本概念、请求和响应的结构、GET和POST请求的区别以及在实际开发中的应用。1.什么是协议?1.1协议的定义协议是一套规范或标准,由
- HTTP协议详解与深入理解
菜就多练少说
计算机网络http网络协议网络
一、什么是HTTP?HTTP(HyperTextTransferProtocol,超文本传输协议)是互联网上应用最广泛的一种通信协议,它定义了客户端与服务器之间通信的标准规则,主要用于浏览器与服务器之间的数据交换。HTTP是万维网的基础,网页浏览、API调用、数据交互等都基于HTTP协议完成。二、HTTP的基本原理HTTP属于应用层协议,采用请求-响应模式(Request-Response)。基本
- winsock实现TCP通信Demo
哲这这
C++c++通信winsocktcp
Client#define_WINSOCK_DEPRECATED_NO_WARNINGS#include#include#include//包含网络通信头文件#pragmacomment(lib,"ws2_32.lib")#definePORT8888#defineSERVER_IP"127.0.0.1"#defineBUFFER_SIZE256staticconststd::stringkExi
- 解决“请求被中止: 未能创建 SSL/TLS 安全通道”的问题
publicStreamGetResponseStreamByHttpGet(stringurl){try{//创建请求地址之前添加代码System.Net.ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12;HttpWebRequestrequest=(HttpWebRequest)HttpWebRequest.Crea
- mysqlx_max_connections
讓丄帝愛伱
数据库#MySQLmysql
mysqlx_max_connections是MySQL8.0版本中的一个系统变量,它用于设置MySQLXProtocol(X协议)的最大连接数。MySQLXProtocol是MySQL的一种新的协议,它基于WebSocket和JSON,用于提供无状态、基于文档的访问MySQL的功能。mysqlx_max_connections定义了通过X协议允许的最大并发连接数。当达到该限制时,新的连接请求将被
- vue3导出 excel、word
满楼、
excelwordjavascript
importaxiosfrom'axios'import{http}from'@/plugins/axios'import{useMessage}from'naive-ui'constmessage=useMessage()constinstance=axios.create({responseType:'arraybuffer',onDownloadProgress:function(Progr
- 产品背景知识——API、SDK、Library、Framework、Protocol
爱吃芝麻汤圆
#产品背景知识apisdk产品背景知识
产品背景知识——API、SDK、Library、Framework、ProtocolAPI和SDKAPI(ApplicationProgrammingInterface,应用程序编程接口)和SDK(SoftwareDevelopmentKit,软件开发工具包)是软件开发中的两个核心概念,它们既有区别又有紧密联系。以下是详细解释:1.API与SDK的区别特性APISDK定义一组预定义的规则和协议,用
- Netty和gRPC区别
不曾高瞻远瞩
rpc
1.框架类型Netty:Netty是一个异步事件驱动的网络应用框架,用于开发高性能的网络服务器和客户端应用程序。它是一个低级别的网络框架,主要用于处理TCP、UDP、HTTP等协议。Netty提供了灵活的API来构建自定义的网络协议和传输层逻辑。gRPC:gRPC是一个基于HTTP/2和ProtocolBuffers的高性能RPC(远程过程调用)框架。它是一个高级别的通信框架,专注于提供简单易用且
- Traceroute 技术深度剖析:从原理到实践
Dsocc
网络tcp/ip网络协议安全
一、Traceroute的技术原理与实现机制1.1核心原理:利用TTL和ICMP协议构建路径Traceroute是一个网络诊断工具,用于显示数据包从源主机到目标主机经过的路由路径及每一跳的延迟时间。其核心原理基于IP协议的TTL(TimeToLive,生存时间)字段和ICMP(InternetControlMessageProtocol)协议。Traceroute的基本工作原理是通过发送一系列TT
- ARP 协议全面分析:原理、安全与应用
Dsocc
安全网络网络协议
一、ARP协议基础原理1.1ARP协议的基本概念ARP(AddressResolutionProtocol,地址解析协议)是TCP/IP协议栈中的一个重要低层协议,负责将网络层的IP地址转换为数据链路层的物理MAC地址,使得数据包能够在局域网中准确传输。在计算机网络通信中,当一个设备需要向另一个设备发送数据时,不仅需要知道对方的IP地址,还需要知道其MAC地址。ARP协议就是通过IP地址查询MAC
- 关于java通过背景图生成图片
a未来永远是个未知数
#java的图片处理javajavaintellij-ideamavenspringboot图像处理
目录对接部分(碎碎念,可跳过)引入本地jar包文件路径错误尝试解决方案开发部分获取字体的方法关于二维码的生成关于在背景图上添加内容关于在背景图上写字关于在背景图上叠加图片关于保存图片第一次尝试第二次尝试第三次尝试最终方案关于文件读取为MultipartFile类型关于BufferedImage转MultipartFile最近用到了需要生成图片的开发,作为一个没有接触过这个的后端,实在头秃,记录一下
- Socket对象
cfqq1989
C#以太网c#
构造3个enum枚举publicSocket(SocketType插座类型,ProtocolType协议类型)【819】:this(AddressFamily.InterNetworkV6,socketType,protocolType)。publicSocket(AddressFamily地址家庭,SocketType插座类型,ProtocolType协议类型)。publicunsafeSock
- Three.js 中文Typeface文件字体大全 | 如何利用Github获取中文Typeface文件
CHENJIAMIAN PRO
javascriptgithub开发语言
TextGeometry和TextBufferGeometry是用于生成3D文本的有效工具。在使用这些工具时,我们需要指定一个包含字体信息的JSON文件,称为typeface.json。Github搜索结果通过在GitHub上搜索TextBufferGeometry的相关内容,我找到了以下一些字体文件。Codesearchresults楷体字体楷体(KaiTiRegular)楷体字体端正美观,非常
- 传输层协议:UDP
目录1、概念2、报文结构3、核心特性3.1无连接3.2不可靠交付3.3面向数据报3.4轻量级&高效3.5支持广播和组播4、典型应用场景5、优缺点分析6、与TCP的区别1、概念UDP(UserDatagramProtocol,用户数据报协议)主要目的:供一种简单、高效、无连接的数据传输服务。2、报文结构UDP头部:(8字节)源端口:(2字节)发送方应用程序的端口号。可选(可置为0),用于接收方回复时
- python连接db2的官方库ibm_db的api
数据-脚本-资源-管道
ibm-dbpython数据库python
IBM_DBAPI详细文档ibm_db.active描述检查指定的数据库连接是否处于活动状态传入参数connection:有效的数据库连接资源返回值True:资源处于活动状态False:资源未处于活动状态例子importibm_dbconn=ibm_db.connect("DATABASE=testdb;HOSTNAME=localhost;PORT=50000;PROTOCOL=TCPIP;UI
- Java NIO 底层原理
itanly
javaniopython
JavaNIO核心组件与底层原理JavaNIO(NewI/O)采用非阻塞I/O模型,通过通道(Channel)、缓冲区(Buffer)和选择器(Selector)实现高性能网络通信。与传统BIO相比,NIO减少了线程阻塞和上下文切换开销。缓冲区(Buffer)工作原理缓冲区是数据暂存的核心结构,底层通过java.nio.Buffer类实现,关键属性包括:capacity:缓冲区总容量positio
- C# DataGridView 刷新导致界面卡顿解决办法
金增辉
C#编程c#开发语言
C#DataGridView刷新导致界面卡顿解决办法解决方案:利用反射设置DataGridView的双缓冲publicMainForm1(){//设置窗体的双缓冲this.SetStyle(ControlStyles.OptimizedDoubleBuffer|ControlStyles.ResizeRedraw|ControlStyles.AllPaintingInWmPaint,true);t
- MCP vs LangChain:标准化协议与开发框架的优劣对比
guohuang
MCP人工智能深度学习大模型
随着大型语言模型(LLM)技术的迅速发展,开发者需要高效的工具来构建基于LLM的应用。MCP(ModelContextProtocol)和LangChain作为两种主流解决方案,各有优缺点。本文将从技术入门者的角度,对这两种技术进行深入对比分析。1.概述MCP:标准化协议MCP(ModelContextProtocol)是由Anthropic提出的一种标准化协议,旨在统一大模型API的调用方式,简
- 黑客入门 | 用ROP和shellcode攻击SolarWinds Serv-U SSH漏洞
廖致君
安全网络攻击模型
(备注:黑客Hacker并不等同于信息安全罪犯。)最近花了些时间学习bufferoverflow安全漏洞,做了大名鼎鼎的CSAPP课程里的attacklab,学到了return-orientedprogramming(ROP)这种让我大开眼界的进攻方式。于是想要趁热打铁,来详细研究一下现实世界中的黑客进攻案例。本篇文章挑选的是2021年SolarWindsServ-UFTP软件中的漏洞,记录编号C
- AAC / G711A / PCM 音频格式解析
孤独冰刃
音频编码解码
Android利用AudioTrack录制和播放PCM格式音频:publicclassPCMTalk{privateAudioRecordaudioRecord;privateintsampleRate;privateintchannel;privateByteBufferrecordBuf;privateAudioTracktrack;publicPCMTalk(intsampleRate,in
- Python 的内置函数 open
IMPYLH
python笔记
Python内建函数列表>Python的内置函数openPython的内置函数open()是用于打开文件的重要函数,它提供了与文件系统交互的基本接口。该函数返回一个文件对象(fileobject),可用于读取、写入或追加文件内容。函数签名open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=Tr
- MCP模型上下文协议:AI人工智能模型训练的自动化调参
AI天才研究院
AI人工智能与大数据人工智能自动化运维ai
MCP模型上下文协议:AI人工智能模型训练的自动化调参关键词:MCP模型、自动化调参、AI训练、超参数优化、上下文协议、机器学习、深度学习摘要:本文深入探讨MCP模型上下文协议在AI模型训练自动化调参中的应用。MCP(ModelContextProtocol)是一种创新的自动化调参框架,通过上下文感知和动态参数调整机制,显著提升模型训练效率和性能。文章将从理论基础、算法实现、数学原理到实际应用进行
- http相关网络问题面试怎么答
weixin_42339193
计算机网络前端http
一、先明确HTTP的核心定义(基础层)首先用一句话概括HTTP的本质,让面试官快速了解你对核心概念的认知:“HTTP(HyperTextTransferProtocol,超文本传输协议)是一种用于在客户端(如浏览器)和服务器之间传输数据的应用层协议,它基于请求-响应模式,是互联网数据交互的基础(比如网页加载、API调用等都依赖HTTP)。”二、深入讲解HTTP的关键特性(知识深度)围绕HTTP的核
- 一、Linux C/C++ 网路socket基础代码
1776323096
LinuxC/C++网络IOlinuxc语言c++服务器网络
文章目录需要用到的函数1、intsocket(int__domain,int__type,int__protocol);2、intbind(int__fd,__CONST_SOCKADDR_ARG__addr,socklen_t__len);3、intlisten(int__fd,int__n);4、intaccept(int__fd,__SOCKADDR_ARG__addr,socklen_t*
- Linux下使用C/C++进行UDP网络编程
袁本美
Linux网络linuxudpc++
UDP是UserDatagramProtocol的简称,中文名是用户数据报协议,是一种无连接、不可靠的协议,同样它也是工作在传顺层。它只是简单地实现从一端主机到另一端主机的数据传输功能,这些数据通过IP层发送,在网络中传输,到达目标主机的顺序是无法预知的,因此需要应用程序对这些数据进行排序处理,这就带来了很大的不方便,此外,UDP协议更没有流量控制、拥塞控制等功能,在发送的一端,UDP只是把上层应
- FlatBuffers(概念、原理及优势、在TS中的使用)
前端杂货铺
TodoList100个小知识FlatBuffersJSON序列化反序列化
个人简介个人主页:前端杂货铺♂️学习方向:主攻前端方向,正逐渐往全干发展个人状态:研发工程师,现效力于中国工业软件事业人生格言:积跬步至千里,积小流成江海推荐学习:前端面试宝典100个小功能Vue2Vue3Vue2/3项目实战Node.js实战Three.js个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧文章目录介绍在Vue中使用FlatBuffersFlatBuff
- 06-three.js 创建自己的缓冲几何体
四喜花露水
Threejavascript前端开发语言
Three.jsJourney—LearnWebGLwithThree.jsTheultimateThree.jscoursewhetheryouareabeginneroramoreadvanceddeveloperhttps://threejs-journey.com/?c=p3关键点:1.newFloat32Array()2.newTHREE.BufferAttribute()3.geome
- String字符串与StringBuffer、StringBuilder的区别以及String的不可变性是什么
Hellyc
java开发语言
String字符串是八个基本数据类型之一,其底层实现是通过字符数组来进行实现的,也就是abc的字符数组与abc的字符串是完全相等的。StringBuilder与StringBuffer都继承相同的父类AbstractStringBuilder,这两个方法都提供了一些字符串的基本操作,比如append()使两个字符串进行相加。其中String与StringBuffer是线程安全的,StringBui
- MCP+A2A:从实验室到生产环境的落地之旅
CarlowZJ
AI应用落地+MCP+A2A数据库MCP+A2A
目录摘要一、引言二、MCP与A2A概念讲解(一)MCP(ModelContextProtocol)(二)A2A(Application-to-Application)(三)MCP与A2A的融合三、MCP+A2A技术架构图与工作流程图(一)整体架构图(二)工作流程图四、MCP+A2A代码示例(一)基于Python的MCP+A2A通信示例(二)基于Java的MCP+A2A应用集成示例五、MCP+A2A
- Algorithm
香水浓
javaAlgorithm
冒泡排序
public static void sort(Integer[] param) {
for (int i = param.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
int current = param[j];
int next = param[j + 1];
- mongoDB 复杂查询表达式
开窍的石头
mongodb
1:count
Pg: db.user.find().count();
统计多少条数据
2:不等于$ne
Pg: db.user.find({_id:{$ne:3}},{name:1,sex:1,_id:0});
查询id不等于3的数据。
3:大于$gt $gte(大于等于)
&n
- Jboss Java heap space异常解决方法, jboss OutOfMemoryError : PermGen space
0624chenhong
jvmjboss
转自
http://blog.csdn.net/zou274/article/details/5552630
解决办法:
window->preferences->java->installed jres->edit jre
把default vm arguments 的参数设为-Xms64m -Xmx512m
----------------
- 文件上传 下载 解析 相对路径
不懂事的小屁孩
文件上传
有点坑吧,弄这么一个简单的东西弄了一天多,身边还有大神指导着,网上各种百度着。
下面总结一下遇到的问题:
文件上传,在页面上传的时候,不要想着去操作绝对路径,浏览器会对客户端的信息进行保护,避免用户信息收到攻击。
在上传图片,或者文件时,使用form表单来操作。
前台通过form表单传输一个流到后台,而不是ajax传递参数到后台,代码如下:
<form action=&
- 怎么实现qq空间批量点赞
换个号韩国红果果
qq
纯粹为了好玩!!
逻辑很简单
1 打开浏览器console;输入以下代码。
先上添加赞的代码
var tools={};
//添加所有赞
function init(){
document.body.scrollTop=10000;
setTimeout(function(){document.body.scrollTop=0;},2000);//加
- 判断是否为中文
灵静志远
中文
方法一:
public class Zhidao {
public static void main(String args[]) {
String s = "sdf灭礌 kjl d{';\fdsjlk是";
int n=0;
for(int i=0; i<s.length(); i++) {
n = (int)s.charAt(i);
if((
- 一个电话面试后总结
a-john
面试
今天,接了一个电话面试,对于还是初学者的我来说,紧张了半天。
面试的问题分了层次,对于一类问题,由简到难。自己觉得回答不好的地方作了一下总结:
在谈到集合类的时候,举几个常用的集合类,想都没想,直接说了list,map。
然后对list和map分别举几个类型:
list方面:ArrayList,LinkedList。在谈到他们的区别时,愣住了
- MSSQL中Escape转义的使用
aijuans
MSSQL
IF OBJECT_ID('tempdb..#ABC') is not null
drop table tempdb..#ABC
create table #ABC
(
PATHNAME NVARCHAR(50)
)
insert into #ABC
SELECT N'/ABCDEFGHI'
UNION ALL SELECT N'/ABCDGAFGASASSDFA'
UNION ALL
- 一个简单的存储过程
asialee
mysql存储过程构造数据批量插入
今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
DELIMITER $$
DROP PROCEDURE IF EXISTS inse
- annot convert from HomeFragment_1 to Fragment
百合不是茶
android导包错误
创建了几个类继承Fragment, 需要将创建的类存储在ArrayList<Fragment>中; 出现不能将new 出来的对象放到队列中,原因很简单;
创建类时引入包是:import android.app.Fragment;
创建队列和对象时使用的包是:import android.support.v4.ap
- Weblogic10两种修改端口的方法
bijian1013
weblogic端口号配置管理config.xml
一.进入控制台进行修改 1.进入控制台: http://127.0.0.1:7001/console 2.展开左边树菜单 域结构->环境->服务器-->点击AdminServer(管理) &
- mysql 操作指令
征客丶
mysql
一、连接mysql
进入 mysql 的安装目录;
$ bin/mysql -p [host IP 如果是登录本地的mysql 可以不写 -p 直接 -u] -u [userName] -p
输入密码,回车,接连;
二、权限操作[如果你很了解mysql数据库后,你可以直接去修改系统表,然后用 mysql> flush privileges; 指令让权限生效]
1、赋权
mys
- 【Hive一】Hive入门
bit1129
hive
Hive安装与配置
Hive的运行需要依赖于Hadoop,因此需要首先安装Hadoop2.5.2,并且Hive的启动前需要首先启动Hadoop。
Hive安装和配置的步骤
1. 从如下地址下载Hive0.14.0
http://mirror.bit.edu.cn/apache/hive/
2.解压hive,在系统变
- ajax 三种提交请求的方法
BlueSkator
Ajaxjqery
1、ajax 提交请求
$.ajax({
type:"post",
url : "${ctx}/front/Hotel/getAllHotelByAjax.do",
dataType : "json",
success : function(result) {
try {
for(v
- mongodb开发环境下的搭建入门
braveCS
运维
linux下安装mongodb
1)官网下载mongodb-linux-x86_64-rhel62-3.0.4.gz
2)linux 解压
gzip -d mongodb-linux-x86_64-rhel62-3.0.4.gz;
mv mongodb-linux-x86_64-rhel62-3.0.4 mongodb-linux-x86_64-rhel62-
- 编程之美-最短摘要的生成
bylijinnan
java数据结构算法编程之美
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class ShortestAbstract {
/**
* 编程之美 最短摘要的生成
* 扫描过程始终保持一个[pBegin,pEnd]的range,初始化确保[pBegin,pEnd]的ran
- json数据解析及typeof
chengxuyuancsdn
jstypeofjson解析
// json格式
var people='{"authors": [{"firstName": "AAA","lastName": "BBB"},'
+' {"firstName": "CCC&
- 流程系统设计的层次和目标
comsci
设计模式数据结构sql框架脚本
流程系统设计的层次和目标
 
- RMAN List和report 命令
daizj
oraclelistreportrman
LIST 命令
使用RMAN LIST 命令显示有关资料档案库中记录的备份集、代理副本和映像副本的
信息。使用此命令可列出:
• RMAN 资料档案库中状态不是AVAILABLE 的备份和副本
• 可用的且可以用于还原操作的数据文件备份和副本
• 备份集和副本,其中包含指定数据文件列表或指定表空间的备份
• 包含指定名称或范围的所有归档日志备份的备份集和副本
• 由标记、完成时间、可
- 二叉树:红黑树
dieslrae
二叉树
红黑树是一种自平衡的二叉树,它的查找,插入,删除操作时间复杂度皆为O(logN),不会出现普通二叉搜索树在最差情况时时间复杂度会变为O(N)的问题.
红黑树必须遵循红黑规则,规则如下
1、每个节点不是红就是黑。 2、根总是黑的 &
- C语言homework3,7个小题目的代码
dcj3sjt126com
c
1、打印100以内的所有奇数。
# include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=100; i++)
{
if (i%2 != 0)
printf("%d ", i);
}
return 0;
}
2、从键盘上输入10个整数,
- 自定义按钮, 图片在上, 文字在下, 居中显示
dcj3sjt126com
自定义
#import <UIKit/UIKit.h>
@interface MyButton : UIButton
-(void)setFrame:(CGRect)frame ImageName:(NSString*)imageName Target:(id)target Action:(SEL)action Title:(NSString*)title Font:(CGFloa
- MySQL查询语句练习题,测试足够用了
flyvszhb
sqlmysql
http://blog.sina.com.cn/s/blog_767d65530101861c.html
1.创建student和score表
CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR
- 转:MyBatis Generator 详解
happyqing
mybatis
MyBatis Generator 详解
http://blog.csdn.net/isea533/article/details/42102297
MyBatis Generator详解
http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.
- 让程序员少走弯路的14个忠告
jingjing0907
工作计划学习
无论是谁,在刚进入某个领域之时,有再大的雄心壮志也敌不过眼前的迷茫:不知道应该怎么做,不知道应该做什么。下面是一名软件开发人员所学到的经验,希望能对大家有所帮助
1.不要害怕在工作中学习。
只要有电脑,就可以通过电子阅读器阅读报纸和大多数书籍。如果你只是做好自己的本职工作以及分配的任务,那是学不到很多东西的。如果你盲目地要求更多的工作,也是不可能提升自己的。放
- nginx和NetScaler区别
流浪鱼
nginx
NetScaler是一个完整的包含操作系统和应用交付功能的产品,Nginx并不包含操作系统,在处理连接方面,需要依赖于操作系统,所以在并发连接数方面和防DoS攻击方面,Nginx不具备优势。
2.易用性方面差别也比较大。Nginx对管理员的水平要求比较高,参数比较多,不确定性给运营带来隐患。在NetScaler常见的配置如健康检查,HA等,在Nginx上的配置的实现相对复杂。
3.策略灵活度方
- 第11章 动画效果(下)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- FAQ - SAP BW BO roadmap
blueoxygen
BOBW
http://www.sdn.sap.com/irj/boc/business-objects-for-sap-faq
Besides, I care that how to integrate tightly.
By the way, for BW consultants, please just focus on Query Designer which i
- 关于java堆内存溢出的几种情况
tomcat_oracle
javajvmjdkthread
【情况一】:
java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环; 如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg> <jvm-arg>-Xmx
- Manifest.permission_group权限组
阿尔萨斯
Permission
结构
继承关系
public static final class Manifest.permission_group extends Object
java.lang.Object
android. Manifest.permission_group 常量
ACCOUNTS 直接通过统计管理器访问管理的统计
COST_MONEY可以用来让用户花钱但不需要通过与他们直接牵涉的权限
D