egg使用egg-socket.io_microcosm1994的博客-程序员秘密

技术标签: egg.js  websocket  

下载

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39081974/article/details/93605294

智能推荐

YOLO算法解读_yolo是什么_Grant_Ward的博客-程序员秘密

本文以从头实现YOLO的角度出发,解释了YOLO目标检测框架。本文不会描述网络的优点/缺点或每个设计选择的原因,而是关注于它是如何工作的。在阅读本文之前,假设读者对神经网络,特别是CNN有一个基本的了解。文中所有的描述都与YOLO的原论文有关: You Only Look Once: Unified, Real-Time Object Detection by Joseph Redmon, Sa...

程序员转实施工程师_实施工程师到底做什么的?我认为比程序员接触面更广_Dandakaranya的博客-程序员秘密

在学校学习软件设计专业的时候,老师就曾说过,IT专业找工作很容易的,别看工作时用的编程语言比较单一,但是学校的知识能让你找到IT行业各种种类的工作,比如程序员,测试,实施,技术支持,产品研发,数据库专员等等.........,以前一直做编程也就是JAVA程序员,接触到的都是测试,产品研发的人,一直认为实施就是给别人安装软件的,直到身体原因康复后不得不转行发现实施需要的综合能力挺强的。实施到底是做什...

iOS Pod 'xxx.h' file not found with <angled> include; use "quotes" instead_use quotes instead_豪冷啊的博客-程序员秘密

办法方案1 : https://blog.csdn.net/sinat_32972877/article/details/78275772更新 pods 之后,发觉一直提示要把#import &lt;AFN&gt; 改成#import“AFN” ,然后折腾了一会,看到可能是路径问题。然后把#import&lt;AFN/AFN.h&gt;,加上/ 。然后再Build Settin...

《运动控制系统》-----王斌锐_电机与运动控制系统pdf-程序员秘密

运动控制系统前言一 绪论1.1 运动的基本概念与分类1.2 运动控制系统的组成二 运动机构分析2.1 运动副前言自动控制领域有过程控制和运动控制两大分支;过程控制针对离散的过程量;运动控制针对的是实时的连续的控制;目前的运动控制主要侧重点在于电机原理以及伺服驱动器控制,而现代完整的运动控制系统不仅仅是这些。运动控制系统的组成运动的起源----驱动器;实现的基础----结构机构;数学基础/理论力学----运动学和动力学建模;控制系统的组成----运动感知,控制算法,控制器硬件一 绪论

各种机器学习的应用场景分别是什么_机器学习的应用范围_csdn_yuan88的博客-程序员秘密

作者:xyzh链接:https://www.zhihu.com/question/26726794/answer/151282052来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。写给懒得看的人:没有最好的分类器,只有最合适的分类器。随机森林平均来说最强,但也只在9.9%的数据集上拿到了第一,优点是鲜有短板。SVM的平均水平紧随其后,在10...

成都传智播客java培训10月份新班开班_IT-source的博客-程序员秘密

送走了国庆7天小长假,10月8日上午,传智播客成都java培训中心又迎来了新一期基础班开班 。    开班典礼上,无非是各种人物上台讲话,但传智播客的老师们字字珠玑,为新学员入学打下一剂“强心针”。            java培训班开班典礼为接下来40天的学习拉开了序幕,基础班学员将正式迎来学习的课程,开启他们的逐梦之旅,祝大家学习顺利、生活愉快。    金秋10月

随便推点

PYTORCH安装(conda)_conda安装pytorch_笛儿,,的博客-程序员秘密

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,android自定义权限_爱reo樱桃的纱雾酱的博客-程序员秘密

今天在研究android自定权限的时候,发现一个错误:11-25 16:16:24.819 1747-1747/com.example.android.renderscriptintrinsic E/AndroidRuntime﹕ FATAL EXCEPTION: mainProcess: com.example.android.renderscriptintrinsic, PID: 174...

java集合之迭代器_sspudding的博客-程序员秘密

迭代器(Iterator)是一种设计模式、提供了一种方法,来对集合、容器进行遍历的方式,不需要关注底层数据结构和数据类型,来达到底层和上层遍历解耦的目的。简单来说呢,迭代器就是遍历集合的一种方式,并且必须依赖于集合而存在!但是他的底层实现还是不容易想通的,所以下面通过源码和我个人的理解来看一下啦~Iterator里面有三个方法:boolean hasNext() :判断集合是否还有元素;...

python里面读取h5文件报错OSError: Can‘t read data (address of object past end of allocation)_"file \"h5py/_selector.pyx\", line 361, in h5py._s_木里先森的博客-程序员秘密

报错如下: 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中忘记了root用户的密码? -----Jane Eyre_mysql中root密码忘了_CoderLix的博客-程序员秘密

重置MySQL密码步骤详解cmd – &gt; net stop mysql 停止mysql服务 * 需要管理员运行该cmd- 2 . 使用无验证方式启动mysql服务: mysqld --skip-grant-tables打开新的cmd窗口,直接输入mysql命令,敲回车。就可以登录成功use mysql;update user set passwor...

什么是DRM_beautyfuel的博客-程序员秘密

DRM,英文全称Digital Rights Management, 可以翻译为:数字版权管理。我的理解DRM就是对二进制传输文件的一种加密保护,比如视频,音频等;也就是说在从服务器端传递到客户端的时候存在private key 的保护,只有拥有对应的key才能打开节目的权利;具体解释:DRM,英文全称Digital Rights Management, 可以翻译为:数字版权管

推荐文章

热门文章

相关标签