- yolov8涨点系列之C2f模块改进主分支
没脾气的小玩家
YOLO目标检测
文章目录C2F模块介绍定义与基本原理应用场景C2f模块修改步骤(1)C2f_up模块编辑(2)在__init_.py+block.py中声明(3)在task.py中声明yolov8引入C2f_up模块yolov8.yamlyolov8.yaml引入C2f_up模块C2f改进对YOLOv8检测具有多方面的好处C2F模块介绍定义与基本原理 C2F(Coarse-to-Fine)模块通常是一
- 使用C#调用webApi
1、restClient类usingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Linq;usingSystem.Net;usingSystem.Text;usingSystem.Web;namespaceTask10WebApi{publicclassRestClient{//////请求服务器地址///pr
- 深入解析Hadoop中的推测执行:原理、算法与策略
码字的字节
hadoop布道师hadoop算法推测执行
Hadoop推测执行概述在分布式计算环境中,任务执行速度的不均衡是一个普遍存在的挑战。Hadoop作为主流的大数据处理框架,通过引入推测执行(SpeculativeExecution)机制有效缓解了这一问题。该技术本质上是一种乐观的容错策略,当系统检测到某些任务执行明显落后于预期进度时,会自动在其它计算节点上启动相同任务的冗余副本,最终选择最先完成的任务结果作为输出。核心设计动机推测执行的诞生源于
- Spark RDD 之 Partition
博弈史密斯
SparkRDD怎么理解RDD的粗粒度模式?对比细粒度模式SparkRDD的task数量是由什么决定的?一份待处理的原始数据会被按照相应的逻辑(例如jdbc和hdfs的split逻辑)切分成n份,每份数据对应到RDD中的一个Partition,Partition的数量决定了task的数量,影响着程序的并行度支持保存点(checkpoint)虽然RDD可以通过lineage实现faultrecove
- docker 常见错误
零一间
服务启动失败#systemctlstartdocker.serviceJobfordocker.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemctlstatusdocker.service"and"journalctl-xe"fordetails解决方法修改/etc/docker/daemon.json文件(j
- AUTOSAR OS Introduction -- Part 1(Task&ISR)
寻找幸存者
ClassicAUTOSARautosar
GeneralAUTOSAROS由OSEKOS衍生出来,同时也满足ISO-17356-3对于实施操作系统的要求,本文以ETASOS为例进行介绍Task我们写的所有Function都需要被OS调度才可以运行,那么负责调度这些Function就是OSTaskTaskTypeOsTask依据是否关联OSEvent.可以分为BasicTask(不包含OSEvent)和ExtendedTask(包含OSEv
- ffmpeg音视频开发实战6,flutter开源项目商业化
2401_84408734
程序员ffmpegflutter开源
正文Java集合:使用场景、源码阅读GC机制虚拟机对象内存分配要学好Android,必须要有扎实的Java基础(当然,现在还有Kotlin)。这里只列出了四点,但Java的体系非常庞大,重难点当然不只这些,列出来的是在实际项目和面试中常用或常见的。Android常用/重要类ActivityHandlerHandlerThreadAsyncTaskBinderAndroid这几个类在编程时是比较高频
- RxJava 全解析:从原理到 Android 实战
Monkey-旭
javarxjava响应式编程android
在Android开发中,异步任务处理是绕不开的核心场景——网络请求、数据库操作、文件读写等都需要在后台执行,而结果需回调到主线程更新UI。传统的“Handler+Thread”或AsyncTask不仅代码冗余,还容易陷入“回调地狱”(嵌套回调导致代码可读性差)。RxJava作为一款基于响应式编程思想的异步框架,通过“链式调用”和“操作符”完美解决了这些问题,成为Android开发者的必备工具。本文
- freertos双向链表的插入
dddddppppp123
链表数据结构
uxTopReadyPriority=uxTopReadyPriority|(1ULuxPriority);//listINSERT_END(&pxReadyTasksLists[pxNewTCB->uxPriority],&pxNewTCB->xStateListItem);List_t*pxList_;//指向目标优先级的就绪任务列表(通过TCB的优先级索引)ListItem_t*pxList
- 做人脸识别遇到的问题
princesshu
pythonpycharm
最开始安装的时候直接用pipinstalldlib却一直显示错误提示“Failedbuildingwheelfordlib”之后去网上搜来了各种下载链接依然错误我发现问题是!!python版本问题,我下载所有的包都与我的python版本不匹配于是我先安装了cmakeboost之后最后直接在终端安好了dlib~
- Python 协程 & 异步编程(asyncio)
GeekAGI
python开发语言
文章目录协程&异步编程(asyncio)1.协程的实现1.1greenlet1.2yield1.3asyncio1.4async&awit1.5小结2.协程的意义2.1爬虫案例2.2小结3.异步编程3.1事件循环3.2协程和异步编程3.2.1基本应用3.2.2await3.2.3Task对象3.2.4asyncio.Future对象3.2.5futures.Future对象3.2.6异步迭代器3.
- python 协程进阶
cliffordl
asyncpythonpython开发语言
python协程实现python协程进阶python生成器的作用协程在多个模型流式输出中的使用实例文章目录1.协程基础1.1.协程名词解释1.2.基本工作流程1.3.async协程执行1.3.1.协程顺序执行(asyncio.run)1.3.2.协程顺序执行(await)1.3.3.协程同步执行(asyncio.create_task)2.可等待对象(Awaitables)2.1.Coroutin
- grafana10.x报错 Failed to upgrade legacy queries Datasource x was not found
每天靠近一点点
grafana
问题grafana从6.x升级到10.x后,导入json文件后报错,数据源x查询不到,grafana不显示数据;TemplatingFailedtoupgradelegacyqueriesDatasourcexwasnotfound解决方法可能grafana升级后数据源找不到,在面板上重新选择数据源保存后,点击Inspect中的PanelJSON文件,查看更新后数据源的uid,在导入的json文件
- FastAPI 基础
FastAPI单元子单元文章目录FastAPI单元子单元一、FastAPI核心类功能概述常用功能块高阶使用功能块二、BackgroundTasks背景任务功能概述常用功能块高阶使用功能块三、UploadFile文件上传功能概述常用功能块高阶使用功能块四、HTTPException和WebSocketException异常处理功能概述常用功能块高阶使用功能块五、参数处理函数(Body、Cookie、
- 【no vue no bug】 npm : 无法加载文件 D:\software\nodeJS\node22\npm.ps1
源码方舟
BUGvue.jsbugnpm
【Bug问题】在vscode中打开项目目录运行npm相关的命令时报下面错误,但是ctrl+r打开控制台输入npm命令又是可以运行的。npm:无法加载文件D:\software\nodeJS\node22\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅https:/go.microsoft.com/fwlink/?LinkID=135170中的about_Execution_Pol
- Template execution failed: ReferenceError: name is not defined
An_s
技术(javascript)配置(环境)reactjsvue.jswebpack
问题我们使用了html-webpack-plugin(webpack)进行编译html,导致的错误。排查结果连接地址html-webpack-plugin版本低(2.30.1),html模板里面不能有``符号,注释都不行``//varreg=newRegExp(`(^|&)${name}=([^&]*)(&|$),"i”)这样也不支持varreg=newRegExp(`(^|&)${name}=(
- yarn : 无法加载文件 D:\nvm\nodejs\yarn.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?
尔嵘
Vue3.0vue.js
这个错误是因为PowerShell的执行策略(ExecutionPolicy)阻止了yarn脚本的运行。以下是几种解决方法:方法1:临时更改执行策略(推荐先尝试)以管理员身份打开PowerShell运行以下命令:powershellSet-ExecutionPolicy-ScopeProcess-ExecutionPolicyBypass然后再次尝试运行yarn命令方法2:永久更改执行策略(需要管
- datasophon下dolphinscheduler执行脚本出错
无级程序员
大数据hive硬件架构hadoop
执行hive脚本出错:错误消息:FAILED:RuntimeExceptionErrorloadinghooks(hive.exec.post.hooks):java.lang.ClassNotFoundException:org.apache.atlas.hive.hook.HiveHookatjava.net.URLClassLoader.findClass(URLClassLoader.ja
- 20. TaskExecutor与ResourceManager心跳
csgo打的菜又爱玩
flink开发语言java大数据
20.TaskExecutor与ResourceManager心跳现在,需要回过头看ResourceManager是如何产生心跳管理服务的。cluster.initializeServices方法的heartbeatServices=createHeartbeatServices(configuration);产生一个HeartbeatServicesImpljobmanager的resource
- 19.TaskExecutor与ResourceManager建立连接
csgo打的菜又爱玩
java开发语言大数据flink
19.TaskExecutor与ResourceManager建立连接在启动过程中,TaskExecutor首先会从ResourceManagerLeaderRetriever获取到当前ResourceManagerGateway(这是与ResourceManager通信的代理对象)TaskExecutor向resourceManager整体流程TaskExecutor与ResourceManag
- flutter app内跳转到其他安卓 app的方法
Wuxiaoming135
flutterandroid前端
flutter内的关键代码导包:url_launcher:^6.3.1跳转逻辑:onPressed:()async{awaitlaunchUrl(Uri.parse('demoname://'));},安卓内的关键代码安卓中仅仅添加如上代码便可以实现让外部app跳转,但是并不会新开一个应用,点击跳转按钮会发现仍旧处在原来的app中,如下:默认情况下,scheme跳转会复用已有的任务栈(Task),
- linux proc/pid/stat解析
虚极静笃13
Linuxlinux
proc/pid/stat用于获取某一个进程的统计信息,实现过程见fs/proc/array.c的do_task_stat()1.stat数据$adbshellcat/proc/8385/stat1557(system_server)S82382300-11077952832//1~92085481152482003271661141296842630//10~1710-1022102284279
- Gradle:Cannot add task ‘clean‘ as a task with that name already exists.
海阔天空6688
开发工具Androidgradleandroid
Gradle编译项目报错:Cannotaddtask'clean'asataskwiththatnamealreadyexists.提示的是gradle中的clean方法已经存在了,冲突了,把项目中build.gradle的clean方法注释掉或者删掉重新编译就也可以了。buildscript{repositories{}dependencies{classpath'com.android.too
- 【Java-多线程】如何提交一个线程到线程池?
Java自学之旅
大白话说Javajava开发语言
要将线程提交到线程池,主要通过Java的ExecutorService接口实现。以下是具体步骤和原理说明:一、核心步骤创建线程池ExecutorServiceexecutor=Executors.newFixedThreadPool(4);//创建固定4线程的池定义任务//Runnable接口(无返回值)Runnabletask=()->System.out.println("Runnable任务
- vue3 TypeError: Failed to fetch dynamically imported module 报错解决
海天胜景
vue.js前端javascript
TypeError:Failedtofetchdynamicallyimportedmodule:引入组件时,没有添加.vue后缀或.js后缀,引入的组建是否被使用
- # TF Eager Execution 阅读笔记
tsiic
TFEagerExecution阅读笔记@[TensonFlow]看了半天不知道Eager是啥,这哪能看下去。所以Google了一下,在知乎发现如下解释:......就开启了Eager模式,这时,TensorFlow会从原先的声明式(declarative)编程形式变成命令式(imperative)编程形式。当写下语句"c=tf.matmul(a,b)"后(以及其他任何tf开头的函数),就会直接执
- gradle在build时输出:Could not connect to Kotlin compile daemon
yzpyzp
kotlinandroidgradle
FailedtocompilewithKotlindaemon:java.lang.RuntimeException:CouldnotconnecttoKotlincompiledaemonatorg.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork
- 【深度强化学习】MIP-DQN 实现案例(完整Python代码)
目录MIP-DQN算法概述建模基础训练阶段(Training)部署阶段(OnlineExecution)DNN网络转化为MIP表达式性能指标完整Python代码实现主函数:random_generator_battery模型函数:MIP_DQN基础/专用库包安装模型运行(完整Python代码)参数设置函数:Parameters参考本博客根据论文《Optimalenergysystemschedul
- 深入理解Linux内核-进程
苦茶子12138
Linux上岸手册linux服务器运维
1、进程的静态特性进程:程序执行时的一个实例进程描述符(task_struct):进程的基本信息(thread_info)、指向内存区描述符的指针(mm_struct)、进程相关的tty(tty_struct)、当前目录(fs_struct)、指向文件描述符的指针(files_struct)、所接收的信号(signal_struct)进程状态:1、可运行状态(TASK_RUNNING):正在运行或
- 如何解决一个flink on yarn集群上已经跑了一个job,再提交第二个job的时候,task报java heap size oom的问题
fzip
Flinkflinkjava大数据
在FlinkonYARN集群中提交第二个Job时出现Task的JavaHeapSizeOOM(内存溢出),核心原因是集群资源不足(第一个Job已占用大量资源,第二个Job分配的内存不够)或Job资源配置不合理(单个Job申请资源过多,或内存参数设置与实际需求不匹配)。解决需从“资源排查”“Job配置优化”“集群资源扩容”三个维度入手,具体步骤如下:一、先排查核心原因:确认资源占用与配置是否匹配1.
- 统一思想认识
永夜-极光
思想
1.统一思想认识的基础,才能有的放矢
原因:
总有一种描述事物的方式最贴近本质,最容易让人理解.
如何让教育更轻松,在于找到最适合学生的方式.
难点在于,如何模拟对方的思维基础选择合适的方式. &
- Joda Time使用笔记
bylijinnan
javajoda time
Joda Time的介绍可以参考这篇文章:
http://www.ibm.com/developerworks/cn/java/j-jodatime.html
工作中也常常用到Joda Time,为了避免每次使用都查API,记录一下常用的用法:
/**
* DateTime变化(增减)
*/
@Tes
- FileUtils API
eksliang
FileUtilsFileUtils API
转载请出自出处:http://eksliang.iteye.com/blog/2217374 一、概述
这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。
- 各种新兴技术
不懂事的小屁孩
技术
1:gradle Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。
现在构建系统常用到maven工具,现在有更容易上手的gradle,
搭建java环境:
http://www.ibm.com/developerworks/cn/opensource/os-cn-gradle/
搭建android环境:
http://m
- tomcat6的https双向认证
酷的飞上天空
tomcat6
1.生成服务器端证书
keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn" -alias server -keypass password -keystore server.jks -storepass password -validity 36
- 托管虚拟桌面市场势不可挡
蓝儿唯美
用户还需要冗余的数据中心,dinCloud的高级副总裁兼首席营销官Ali Din指出。该公司转售一个MSP可以让用户登录并管理和提供服务的用于DaaS的云自动化控制台,提供服务或者MSP也可以自己来控制。
在某些情况下,MSP会在dinCloud的云服务上进行服务分层,如监控和补丁管理。
MSP的利润空间将根据其参与的程度而有所不同,Din说。
“我们有一些合作伙伴负责将我们推荐给客户作为个
- spring学习——xml文件的配置
a-john
spring
在Spring的学习中,对于其xml文件的配置是必不可少的。在Spring的多种装配Bean的方式中,采用XML配置也是最常见的。以下是一个简单的XML配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.or
- HDU 4342 History repeat itself 模拟
aijuans
模拟
来源:http://acm.hdu.edu.cn/showproblem.php?pid=4342
题意:首先让求第几个非平方数,然后求从1到该数之间的每个sqrt(i)的下取整的和。
思路:一个简单的模拟题目,但是由于数据范围大,需要用__int64。我们可以首先把平方数筛选出来,假如让求第n个非平方数的话,看n前面有多少个平方数,假设有x个,则第n个非平方数就是n+x。注意两种特殊情况,即
- java中最常用jar包的用途
asia007
java
java中最常用jar包的用途
jar包用途axis.jarSOAP引擎包commons-discovery-0.2.jar用来发现、查找和实现可插入式接口,提供一些一般类实例化、单件的生命周期管理的常用方法.jaxrpc.jarAxis运行所需要的组件包saaj.jar创建到端点的点到点连接的方法、创建并处理SOAP消息和附件的方法,以及接收和处理SOAP错误的方法. w
- ajax获取Struts框架中的json编码异常和Struts中的主控制器异常的解决办法
百合不是茶
jsjson编码返回异常
一:ajax获取自定义Struts框架中的json编码 出现以下 问题:
1,强制flush输出 json编码打印在首页
2, 不强制flush js会解析json 打印出来的是错误的jsp页面 却没有跳转到错误页面
3, ajax中的dataType的json 改为text 会
- JUnit使用的设计模式
bijian1013
java设计模式JUnit
JUnit源代码涉及使用了大量设计模式
1、模板方法模式(Template Method)
定义一个操作中的算法骨架,而将一些步骤延伸到子类中去,使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。这里需要复用的是算法的结构,也就是步骤,而步骤的实现可以在子类中完成。
 
- Linux常用命令(摘录)
sunjing
crondchkconfig
chkconfig --list 查看linux所有服务
chkconfig --add servicename 添加linux服务
netstat -apn | grep 8080 查看端口占用
env 查看所有环境变量
echo $JAVA_HOME 查看JAVA_HOME环境变量
安装编译器
yum install -y gcc
- 【Hadoop一】Hadoop伪集群环境搭建
bit1129
hadoop
结合网上多份文档,不断反复的修正hadoop启动和运行过程中出现的问题,终于把Hadoop2.5.2伪分布式安装起来,跑通了wordcount例子。Hadoop的安装复杂性的体现之一是,Hadoop的安装文档非常多,但是能一个文档走下来的少之又少,尤其是Hadoop不同版本的配置差异非常的大。Hadoop2.5.2于前两天发布,但是它的配置跟2.5.0,2.5.1没有分别。 &nb
- Anychart图表系列五之事件监听
白糖_
chart
创建图表事件监听非常简单:首先是通过addEventListener('监听类型',js监听方法)添加事件监听,然后在js监听方法中定义具体监听逻辑。
以钻取操作为例,当用户点击图表某一个point的时候弹出point的name和value,代码如下:
<script>
//创建AnyChart
var chart = new AnyChart();
//添加钻取操作&quo
- Web前端相关段子
braveCS
web前端
Web标准:结构、样式和行为分离
使用语义化标签
0)标签的语义:使用有良好语义的标签,能够很好地实现自我解释,方便搜索引擎理解网页结构,抓取重要内容。去样式后也会根据浏览器的默认样式很好的组织网页内容,具有很好的可读性,从而实现对特殊终端的兼容。
1)div和span是没有语义的:只是分别用作块级元素和行内元素的区域分隔符。当页面内标签无法满足设计需求时,才会适当添加div
- 编程之美-24点游戏
bylijinnan
编程之美
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class PointGame {
/**编程之美
- 主页面子页面传值总结
chengxuyuancsdn
总结
1、showModalDialog
returnValue是javascript中html的window对象的属性,目的是返回窗口值,当用window.showModalDialog函数打开一个IE的模式窗口时,用于返回窗口的值
主界面
var sonValue=window.showModalDialog("son.jsp");
子界面
window.retu
- [网络与经济]互联网+的含义
comsci
互联网+
互联网+后面是一个人的名字 = 网络控制系统
互联网+你的名字 = 网络个人数据库
每日提示:如果人觉得不舒服,千万不要外出到处走动,就呆在床上,玩玩手游,更不能够去开车,现在交通状况不
- oracle 创建视图 with check option
daizj
视图vieworalce
我们来看下面的例子:
create or replace view testview
as
select empno,ename from emp where ename like ‘M%’
with check option;
这里我们创建了一个视图,并使用了with check option来限制了视图。 然后我们来看一下视图包含的结果:
select * from testv
- ToastPlugin插件在cordova3.3下使用
dibov
Cordova
自己开发的Todos应用,想实现“
再按一次返回键退出程序 ”的功能,采用网上的ToastPlugins插件,发现代码或文章基本都是老版本,运行问题比较多。折腾了好久才弄好。下面吧基于cordova3.3下的ToastPlugins相关代码共享。
ToastPlugin.java
package&nbs
- C语言22个系统函数
dcj3sjt126com
cfunction
C语言系统函数一、数学函数下列函数存放在math.h头文件中Double floor(double num) 求出不大于num的最大数。Double fmod(x, y) 求整数x/y的余数。Double frexp(num, exp); double num; int *exp; 将num分为数字部分(尾数)x和 以2位的指数部分n,即num=x*2n,指数n存放在exp指向的变量中,返回x。D
- 开发一个类的流程
dcj3sjt126com
开发
本人近日根据自己的开发经验总结了一个类的开发流程。这个流程适用于单独开发的构件,并不适用于对一个项目中的系统对象开发。开发出的类可以存入私人类库,供以后复用。
以下是开发流程:
1. 明确类的功能,抽象出类的大概结构
2. 初步设想类的接口
3. 类名设计(驼峰式命名)
4. 属性设置(权限设置)
判断某些变量是否有必要作为成员属
- java 并发
shuizhaosi888
java 并发
能够写出高伸缩性的并发是一门艺术
在JAVA SE5中新增了3个包
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
在java的内存模型中,类的实例字段、静态字段和构成数组的对象元素都会被多个线程所共享,局部变量与方法参数都是线程私有的,不会被共享。
- Spring Security(11)——匿名认证
234390216
Spring SecurityROLE_ANNOYMOUS匿名
匿名认证
目录
1.1 配置
1.2 AuthenticationTrustResolver
对于匿名访问的用户,Spring Security支持为其建立一个匿名的AnonymousAuthenticat
- NODEJS项目实践0.2[ express,ajax通信...]
逐行分析JS源代码
Ajaxnodejsexpress
一、前言
通过上节学习,我们已经 ubuntu系统搭建了一个可以访问的nodejs系统,并做了nginx转发。本节原要做web端服务 及 mongodb的存取,但写着写着,web端就
- 在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值
lhbthanks
javahtmlstrutscheckbox
第一种方法:获取结果String类型
在 Action 中获得的是一个 String 型数据,每一个被选中的 checkbox 的 value 被拼接在一起,每个值之间以逗号隔开(,)。
所以在 Action 中定义一个跟 checkbox 的 name 同名的属性来接收这些被选中的 checkbox 的 value 即可。
以下是实现的代码:
前台 HTML 代码:
- 003.Kafka基本概念
nweiren
hadoopkafka
Kafka基本概念:Topic、Partition、Message、Producer、Broker、Consumer。 Topic: 消息源(Message)的分类。 Partition: Topic物理上的分组,一
- Linux环境下安装JDK
roadrunners
jdklinux
1、准备工作
创建JDK的安装目录:
mkdir -p /usr/java/
下载JDK,找到适合自己系统的JDK版本进行下载:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
把JDK安装包下载到/usr/java/目录,然后进行解压:
tar -zxvf jre-7
- Linux忘记root密码的解决思路
tomcat_oracle
linux
1:使用同版本的linux启动系统,chroot到忘记密码的根分区passwd改密码 2:grub启动菜单中加入init=/bin/bash进入系统,不过这时挂载的是只读分区。根据系统的分区情况进一步判断. 3: grub启动菜单中加入 single以单用户进入系统. 4:用以上方法mount到根分区把/etc/passwd中的root密码去除 例如: ro
- 跨浏览器 HTML5 postMessage 方法以及 message 事件模拟实现
xueyou
jsonpjquery框架UIhtml5
postMessage 是 HTML5 新方法,它可以实现跨域窗口之间通讯。到目前为止,只有 IE8+, Firefox 3, Opera 9, Chrome 3和 Safari 4 支持,而本篇文章主要讲述 postMessage 方法与 message 事件跨浏览器实现。postMessage 方法 JSONP 技术不一样,前者是前端擅长跨域文档数据即时通讯,后者擅长针对跨域服务端数据通讯,p