下载
npm i egg-socket.io --save
使用
plugin.js
module.exports.io = {
enable: true,
package: 'egg-socket.io',
}
// config.default.js
config.io = {
init: { }, // passed to engine.io
namespace: {
'/': {
connectionMiddleware: ['connection'],
packetMiddleware: [],
},
'/example': {
connectionMiddleware: ['connection'],
packetMiddleware: [],
},
},
}
// router/io.js
module.exports = app => {
const { io } = app;
io.of('/').route('CHAT_SEND', io.controller.chat.chat)
io.of('/').route('CHATVIDEO_REQ', io.controller.chat.videoReq)
}
// router.js
require('./router/io')(app)
// controller/chat.js
const Controller = require('egg').Controller;
class chat extends Controller {
async chat() {
const { ctx, app } = this;
const usocket = app.usocket.getState()
let info = ctx.args[0]
const message = ctx.args[1];
}
// 视频聊天请求
async videoReq() {
const { ctx, app } = this;
const usocket = app.usocket.getState()
let info = ctx.args[0]
}
}
module.exports = chat;
需要前端配合使用socket-client
本文以从头实现YOLO的角度出发,解释了YOLO目标检测框架。本文不会描述网络的优点/缺点或每个设计选择的原因,而是关注于它是如何工作的。在阅读本文之前,假设读者对神经网络,特别是CNN有一个基本的了解。文中所有的描述都与YOLO的原论文有关: You Only Look Once: Unified, Real-Time Object Detection by Joseph Redmon, Sa...
在学校学习软件设计专业的时候,老师就曾说过,IT专业找工作很容易的,别看工作时用的编程语言比较单一,但是学校的知识能让你找到IT行业各种种类的工作,比如程序员,测试,实施,技术支持,产品研发,数据库专员等等.........,以前一直做编程也就是JAVA程序员,接触到的都是测试,产品研发的人,一直认为实施就是给别人安装软件的,直到身体原因康复后不得不转行发现实施需要的综合能力挺强的。实施到底是做什...
办法方案1 : https://blog.csdn.net/sinat_32972877/article/details/78275772更新 pods 之后,发觉一直提示要把#import <AFN> 改成#import“AFN” ,然后折腾了一会,看到可能是路径问题。然后把#import<AFN/AFN.h>,加上/ 。然后再Build Settin...
运动控制系统前言一 绪论1.1 运动的基本概念与分类1.2 运动控制系统的组成二 运动机构分析2.1 运动副前言自动控制领域有过程控制和运动控制两大分支;过程控制针对离散的过程量;运动控制针对的是实时的连续的控制;目前的运动控制主要侧重点在于电机原理以及伺服驱动器控制,而现代完整的运动控制系统不仅仅是这些。运动控制系统的组成运动的起源----驱动器;实现的基础----结构机构;数学基础/理论力学----运动学和动力学建模;控制系统的组成----运动感知,控制算法,控制器硬件一 绪论
作者:xyzh链接:https://www.zhihu.com/question/26726794/answer/151282052来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。写给懒得看的人:没有最好的分类器,只有最合适的分类器。随机森林平均来说最强,但也只在9.9%的数据集上拿到了第一,优点是鲜有短板。SVM的平均水平紧随其后,在10...
送走了国庆7天小长假,10月8日上午,传智播客成都java培训中心又迎来了新一期基础班开班 。 开班典礼上,无非是各种人物上台讲话,但传智播客的老师们字字珠玑,为新学员入学打下一剂“强心针”。 java培训班开班典礼为接下来40天的学习拉开了序幕,基础班学员将正式迎来学习的课程,开启他们的逐梦之旅,祝大家学习顺利、生活愉快。 金秋10月
PYTORCH安装(conda)1.搜索框收入cmd2.添加清华镜像源(加快速度)conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --set show_channel_urls yes.
今天在研究android自定权限的时候,发现一个错误:11-25 16:16:24.819 1747-1747/com.example.android.renderscriptintrinsic E/AndroidRuntime﹕ FATAL EXCEPTION: mainProcess: com.example.android.renderscriptintrinsic, PID: 174...
迭代器(Iterator)是一种设计模式、提供了一种方法,来对集合、容器进行遍历的方式,不需要关注底层数据结构和数据类型,来达到底层和上层遍历解耦的目的。简单来说呢,迭代器就是遍历集合的一种方式,并且必须依赖于集合而存在!但是他的底层实现还是不容易想通的,所以下面通过源码和我个人的理解来看一下啦~Iterator里面有三个方法:boolean hasNext() :判断集合是否还有元素;...
报错如下: File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper File "h5py/h5d.pyx", line 182, in h5py.h5d.DatasetID.read File "h5py/_proxy.pyx", line 158, in h5py._p
重置MySQL密码步骤详解cmd – > net stop mysql 停止mysql服务 * 需要管理员运行该cmd- 2 . 使用无验证方式启动mysql服务: mysqld --skip-grant-tables打开新的cmd窗口,直接输入mysql命令,敲回车。就可以登录成功use mysql;update user set passwor...
DRM,英文全称Digital Rights Management, 可以翻译为:数字版权管理。我的理解DRM就是对二进制传输文件的一种加密保护,比如视频,音频等;也就是说在从服务器端传递到客户端的时候存在private key 的保护,只有拥有对应的key才能打开节目的权利;具体解释:DRM,英文全称Digital Rights Management, 可以翻译为:数字版权管