Mean.io 框架与 socket.io

2023-12-23

如何在 Mean.io 堆栈中使用 socket.io?

首先,Mean.io 非常定期地更改其文件夹结构。所以我的问题是配置 socket.io 的最佳位置在哪里?还是使用express.io更好?

其次,我仍然不太确定在哪里寻找告诉mean.io侦听端口的代码,我发现在all.js文件的config文件夹中定义了一个端口,但真正的问题是我定义服务器后.listen(port) 应用程序未加载。如果我不加载应用程序,但 socket.io 不起作用。

另外我还有一个关于 /socket.io/socket-io.js 文件的问题?我已将其复制到索引文件夹中,但我的应用程序找不到它或显示 404 错误。据我所知,这不是位于任何此类位置的实际文件,人们也建议将该行设置为 127.0.0.1/socket.io/socket-io.js,但没有人使 js 文件可用于应用程序能够运行socket.io。

在mean.io框架中定义socket.io的正确方法是什么?


我也遇到了同样的问题,花了大约一周的时间才最终解决。我将尝试解释我所做的事情:

app.js

在此文件中,我仅调用为我创建和设置 socket.io 对象的代码,然后将该对象传递到路由模块。

'use strict';

/*
 * Defining the Package
 */
var Module = require('meanio').Module;

var MeanSocket = new Module('chat');

/*
 * All MEAN packages require registration
 * Dependency injection is used to define required modules
 */
MeanSocket.register(function(app, http) {

    var io = require('./server/config/socketio')(http);

    //We enable routing. By default the Package Object is passed to the routes
    MeanSocket.routes(io);

    return MeanSocket;
});

服务器/config/socketio.js

该文件仅配置socket.io 对象。请注意,为了这项工作,我必须将meanio模块升级到版本0.5.26,因为http对象(快速服务器)在旧的meanio版本中不可用。此外,如果你想使用 ssl,你可以注入https代替http.

'use strict';

var config = require('meanio').loadConfig(),
    cookie = require('cookie'),
    cookieParser = require('cookie-parser'),
    socketio = require('socket.io');

module.exports = function(http) {

    var io = socketio.listen(http);

    io.use(function(socket, next) {
        var data = socket.request;

        if (!data.headers.cookie) {
            return next(new Error('No cookie transmitted.'));
        }

        var parsedCookie = cookie.parse(data.headers.cookie);
        var sessionID = parsedCookie[config.sessionName];
        var parsedSessionID = cookieParser.signedCookie(parsedCookie[config.sessionName], config.sessionSecret);

        if (sessionID === parsedSessionID) {
            return next(new Error('Cookie is invalid.'));
        }

        next();
    });

    return io;
};

路线/chat.js

最后,使用routes文件来定义socket事件等。

'use strict';

// The Package is passed automatically as first parameter
module.exports = function(MeanSocket, io) {

    io.on('connection', function(socket) {

        console.log('Client Connected');

        socket.on('authenticate', function(data, callback) {

        });
    });
};

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mean.io 框架与 socket.io 的相关文章

随机推荐

  • 在模板函数中包含不变假设

    考虑一个典型的有限差分应用 assuming T size gt 2 void process T double T0 double T const int T size bool periodic for int i 0 i lt T s
  • 词干、词形与频率的词形还原(过滤和分析)

    好的 我正在尝试添加一个word tag 但我不确定这是否是正确的方法 抱歉我是新手 from nltk corpus import wordnet as wn Count the words word count Counter word
  • HttpURLConnection 被锁定

    我有一个在 tomcat 下运行的线程 它创建一个 HttpUrlConnection 并通过 BufferedInputStream 读取它 获取某些网址的数据后 它会停止 我得到了进程的 jstack 其中显示 HttpUrlConne
  • 我们如何使用 Python seaborn relplot 在所有子图上绘制垂直线?

    用于创建绘图的 Python 代码如下 这将根据以下内容创建子图 variable s sb relplot x timestamp y value hue variable row variable kind line facet kws
  • 使用 PIL 在图片上叠加文本

    我只是想在图片上写一些文字 可能有一些简单的效果 如阴影 我怎样才能用 PIL 做到这一点 首先安装Python图像库 pip install Pillow 注意 您可能需要更改字体文件的路径font fname import numpy
  • Python 中的似然比测试

    我在 Python 2 7 中计算似然比检验时遇到问题 我有两个模型和相应的似然值 我相信比较模型 L2 是否优于模型 L1 如果模型密切相关 的规则是查看 2 log L2 L1 然后我想找到对应于 2 log L2 L1 的 p 值 并
  • 在 Internet Explorer 10 中将文本保存到本地文件中

    我需要能够将字符串保存到本地文件中 基于中的代码here http thiscouldbebetter wordpress com 2012 12 18 loading editing and saving a text file in h
  • 当我确定我的函数已定义时,为什么我会在错误控制台上看到“函数未定义”?

    我使用的代码应该根据单选按钮选择更改表单的 操作 属性 目前不起作用 我正在尝试找出原因 根据我的 Firefox 错误控制台 函数 submitForm 未定义 但我确信它已定义 有人可以帮忙吗 代码如下 头部内部 q1 指单选按钮的名称
  • PHP/MYSQLI:PHP 中 mysqli_query 失败

    首先 我是 mysql i 语言的菜鸟 只知道 PHP 的基础知识 注意 我不管理或拥有 无权访问当前托管网页的服务器 但是我可以访问 phpMyAdmin 页面 也就是说 我有一个网页 我正在上面尝试一些东西 现在我正在尝试创建一个链接到
  • 更改 ggplot2 中条带文本背景的高度无法按预期工作

    Load libraries library ggplot2 library gtable Build plot d lt ggplot mtcars aes x gear geom bar aes y gear stat identity
  • 如何在测试查找期间将 MavenProject 注入到 mojo 中?

    这是我的测试 maven plugin testing harness 3 3 0 junit 5 6 2 import java io File import org apache maven plugin testing Abstrac
  • 禁止删除 git 中的 master 分支

    我正在尝试设置一个 git hook 来禁止任何人删除master alpha and beta我们存储库的分支 有人能帮忙吗 我从来没有做过 git hook 所以我不想在没有一点帮助的情况下尝试自己开发自己的 git hook 直接用一
  • CloudFormation——可以有嵌套映射吗?

    是否可以在 CloudFormation 中嵌套映射 如下例所示 Mappings Regions us east 1 Environments dev ImageId something Subnet something qa
  • 如何进行 F# 测量以获得加速

    假设单机有8核 在 Haskell 中 您可以使用以下命令进行编译threaded选项 然后在运行时使用 RTS Nx指定要使用的核心数量 例如 myprg args sequential run myprg args RTS N1 par
  • proguard.cfg 文件丢失

    阅读 proguard 上的文档 安卓文档 http developer android com tools help proguard html 我应该有一个 ProGuard cfg 正如它所说 当你创建Android项目时 会在项目根
  • 使用 boto 从 dynamodb 获取唯一哈希键值列表

    我想获取 dynamodb 表的唯一哈希键值列表 我目前知道的唯一方法是扫描整个表 然后迭代扫描 更好的方法是什么 rs list table scan range eq rangevalue for i in rs print i pri
  • 自定义域验证是否在 Azure 订阅之间共享?

    我注意到 在我的 Azure 订阅中的许多应用程序服务 应用程序服务计划和 Azure 区域中 自定义域验证 ID 的值似乎是相同的 我看不到任何关于是否证实这一观察结果的文件 自定义域验证是否在 Azure 订阅之间共享 I m refe
  • 编码 URL 后出现 HTTP 404 错误

    当我使用 HttpUtility UrlEncode 对 Url 进行编码时 我最终收到服务器错误 ASP NET 代码 NavigateUrl 网址 http localhost UITest MM UpdateMember aspx 3
  • 按组计算唯一值

    DATA data frame TRIMESTER c 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 STUDENT c 1 2 3 4 5 6 7 1 2 3 5 9 10 11 3 7 10
  • Mean.io 框架与 socket.io

    如何在 Mean io 堆栈中使用 socket io 首先 Mean io 非常定期地更改其文件夹结构 所以我的问题是配置 socket io 的最佳位置在哪里 还是使用express io更好 其次 我仍然不太确定在哪里寻找告诉mean