如何将socket.io与最新的mean.io一起使用?

2024-02-15

我已经获取了最新的 Mean.io 的副本,并注意到与我之前使用的先前版本相比有相当多的变化。现在,我正在做的是创建一个非常基本的聊天应用程序,它使用套接字.io http://socket.io/有房间。按照套接字文档中的基本设置,我必须实现以下内容:

var app = require('express')()
  , server = require('http').createServer(app)
  , io = require('socket.io').listen(server);

server.listen(80);

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

我在哪里定义基本的插座室设置?

socket.set("log level", 1);  
var people = {};  
var rooms = {};  
var clients = [];  

你可以设置socket.io来监听你的服务器

/server/config/system/bootstrap.js

需要socket.io模块

var express = require('express'),
    appPath = process.cwd(),
    io      = require('socket.io');

现在设置 socket.io 来监听您的应用程序

// Express settings
var app = express(); 
require(appPath + '/server/config/express')(app, passport, db);
io = io(app.listen(3000));    

return io;

然后,您需要通过 bootstrapDependency() 函数将 socket.io 对象注入到您的应用程序中。

function bootstrapDependencies() {
    ...

    // Register socket.io dependency
    mean.register('io', function() {
        return io;
    });
}

Mean.uses 该项目进行依赖注入https://www.npmjs.org/package/dependable https://www.npmjs.org/package/dependable

最后,您需要配置您的应用程序以侦听每个套接字连接 可能您想在主应用程序的路由器上执行这些操作

/server/routes/index.js

连接处理程序示例

var io = require('meanio').io;

io.on('connection', function (socket) {
    // emit data to the clients
    socket.emit('news', { hello: 'world' });

    // event listeners
    socket.on('my other event', function (data) {
         // call your controller function here
         Controller.action(data);
    });
});

更重要的是,不要忘记在客户端设置 socket.io。

// on '/server/views/includes/foot.html'
<script src='/socket.io/socket.io.js'></script>
<script>
    var socket = io();
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将socket.io与最新的mean.io一起使用? 的相关文章

  • NodeJS 在目录中递归地哈希文件

    我能够实现目录中的递归文件遍历 即探索目录中的所有子目录和文件 为此我使用了answer https stackoverflow com questions 5827612 node js fs readdir recursive dire
  • Node.js 中没有请求状态 Morgan Logging

    我正在 Azure VM 上运行 node js 应用程序 使用 PM2 处理负载平衡和重新启动 这是服务器设置和日志记录代码 var logger require morgan var app express app set views
  • Mongoose 查找 array.length 大于 0 的所有文档并对数据进行排序

    我正在使用 mongoose 对 MongoDB 执行 CRUD 操作 这就是我的架构的样子 var EmployeeSchema new Schema name String description type String default
  • lessc:未找到命令

    我使用的是 OS X 8 并且是 Node LESS 的新手 我以为我之前安装了 lessc 当我转到 usr local bin 时 我看到了 lessc 但对于我的生活来说 我无法运行它 每当我运行它时 我都会看到 bash lessc
  • keystonejs 模型中的动态类型选择

    我想在 adminUI 中使用一个组合框 其中包含来自 Web 服务的字段 我正在考虑使用预 查找 挂钩获取数据 然后覆盖模式中 受众 属性的选项属性 Schema Compliance add title type Types Text
  • 如何从 Node.js 中的 Http.IncomingMessage 检测 http 与 https

    给定一个Http IncomingMessage由一个创建http s Server为了响应请求 检测请求是否是 http 与 https 的正确 推荐方法是什么 一些我不知道的随机想法是否正确 检查端口 seems wrong might
  • 永远运行 Gulp 脚本?

    是否可以运行 Gulp 脚本forever https www npmjs com package forever 我有 Gulp 脚本想要作为守护进程运行 所以我可以启动 停止 列出它 好的 所以我通过将 gulp 二进制文件从 usr
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • 如何调试 Node.js 应用程序?

    如何调试 Node js 服务器应用程序 现在我主要使用警报调试打印语句如下 sys puts sys inspect someVariable 一定有更好的调试方法 我知道谷歌浏览器 http en wikipedia org wiki
  • Electron — 无法显示自定义图标

    我在以两种不同的方式设置 Electron 应用程序的图标时遇到问题 非打包 通过终端运行应用程序 我的 main js 确实指定了一个 图标 值 指向图标文件 但它不适用 包装 使用电子包装器 我的 package json 文件指定了
  • http模块和express模块​​有什么区别?

    我正在学习 NodeJs http www tutorialspoint com nodejs http www tutorialspoint com nodejs 我无法理解使用 http 模块 get post 方法 与使用expres
  • (节点:20732)[DEP0018] DeprecationWarning:未处理的承诺拒绝已被弃用。未来在nodejs中

    我正在尝试在我的应用程序中生成确认链接 虽然它工作正常并且也生成链接 但是当我访问该链接时 它在 Chrome 控制台中显示 POST http localhost 3000 api auth confirmation 400 Bad Re
  • Nodejs Express 隐式中间件应用于所有路由?

    我想知道 Express 是否允许我创建一个默认调用的路由中间件 而无需我将其明确放置在 app get arg 列表中 NodeJS 新手 var data title blah So I want to include this in
  • Laravel Homestead 中 npm 安装错误有解决方案吗?

    Windows 10 家园 虚拟盒6 0 8 流浪者2 2 5 节点 v12 5 0 npm v6 10 1 我想做的就是在新安装的 Laravel 应用程序中执行 npm install 命令 但我不断收到错误 经过两天的谷歌搜索并尝试了
  • 在生产中使用 babel-node 可以吗

    我一直在使用 babel node 和 browserify 以及 babelify 转换来开发一个网站 以支持 ES6 语法 我只是想知道 我可以在生产中运行它吗 babel node server 而不是 node server 要在
  • AWS Lambda 提前结束(没有任何显式返回或回调)

    我在放入 AWS Lambda 中的一些 Node js 代码时遇到了一些问题 我需要进行几个异步调用 虽然第一个调用的行为符合我的预期 但 lambda 函数在第二个调用完成之前终止 返回值为 null 这让我认为 lambda 正在执行
  • Node.js - 生成的进程正在生成错误“execvp():没有这样的文件或目录”

    我有以下代码 旨在生成并分离子进程 它只是同一目录中的另一个 node js 脚本 这是我正在运行的确切代码 var fs require fs var child require child process var out fs open
  • 如何从@google-cloud/storage读取文件?

    我正在从我的存储桶中检索文件 我收到该文件并想要阅读其内容 但我不想将其下载到我的本地项目 我只想读取内容 获取数据并用它进行其他操作 我的代码 export const fileManager async gt try const sou
  • 使用 TFS 2015 运行 Jest 单元测试

    有人尝试将 jest 单元测试与 TFS 2015 集成吗 我尝试使用 Chutzpah 测试适配器 https visualstudiogallery msdn microsoft com f8741f04 bae4 4900 81c7
  • 使用 Nodemailer 提交电子邮件时 NodeJs 错误

    我已按照以下步骤设置 Nodemailer 1 允许访问 Gmail 中安全性较低的应用程序 2 在app js中写入以下内容 app post reachus send function req res var transporter n

随机推荐

  • 可能从日期字符串注入选择查询

    我有一个有点奇怪的问题 我的页面包含一个 html 链接 该链接刷新页面并调用 PHP 变量 此变量将日期字符串附加到 url 字符串 该字符串被输入到 MySQL 查询中 该查询会抓取与该日期匹配的记录 我认为这会导致注入 因为它有时会从
  • Java检查字符串中的重复字母

    我在弄清楚如何检查用户输入的重复字母时遇到问题 程序需要将重复的字母输出为 true 如果没有则输出为 false 程序不应计算重复的数字或符号 例如 用户输入 巧克力程序输出 真 用户输入 112奶油程序输出 假 这是另一个版本 基于 r
  • 使用 JSDoc 记录工厂

    为了避免使用new在我的 JavaScript 代码中 我编写工厂来创建对象 我尝试了很多种组合 最令我满意的结果如下 Document module module app document function use strict Fact
  • 全8位加法器,非逻辑输出

    我创建了一个带全加器的 8 位加法器 正如您所看到的 我开始从右到左添加相应的位 对于 cin 信号 t1 和 t2 并按顺序 cout t2 和 t1 第一个 cin 设置为加法器输入 cin 我在实现中没有看到任何问题 但是当我运行它时
  • Office365 执行多个请求时出现“addFileAttachmentAsync”错误

    我遇到问题添加文件附件异步 我有 2 个数组 嵌入文件 包含将附加到正文中的文件名 和附件 包含将作为附件的文件名 我有2个for为每个数组运行循环 它们应该对数组中的每个文件向 Exchange Server 发出 GET 请求并获取二进
  • 在 iOS 中读取文本文件

    如何将文本文件读入textView 我有许多不同的文本文件 用户选择显示哪个 所以这就是为什么我不只是在其中有一个文件名 我真的很困惑为什么这不起作用 我在 Apple 开发者网站上有关从文件读取到字符串的部分中找到了它 NSString
  • PHPExcel图表不反转垂直轴

    我正在使用 PHPExcel 以便使用条形图导出 Excel 图表 我可以将默认布局的图表导出为下图 但是 我想将轴布局放在图表顶部并反转 Y 轴 如下图所示 我怎样才能做到这一点 研究代码后我发现它是possible反转轴 yAxis n
  • Alfresco 创建一个新用户组,仅允许创建用户和组

    我想创建一个新用户组 该用户组中的成员可以创建新用户和新组 我认为创建用户或组需要admin允许 该用户组除了创建 编辑 删除用户 组外 没有其他管理权限 alfresco社区4 0c中是否提供了这种群组 我该如何实施 如何添加具有指定权限
  • 邮政编码应使用什么 html5 表单属性?

    最好使用限制字符数的 文本 属性 还是可以在邮政编码的输入中使用数字属性 只是想了解 html5 中表单的所有不同属性 干杯 你可以试试这个
  • java中时间轴和线程有什么区别

    以下两个简单的片段执行相同的操作 打印 Hello world 每一秒 但它们之间有什么区别呢 什么时候应该使用线程 什么时候应该使用时间轴 Timeline 内部是否启动一个线程 如果没有 如何在不阻塞主线程的情况下每秒执行一次打印 Ti
  • Lucene.net 搜索引擎

    我有一个文件夹 里面有 20 个文本文件 我希望索引该文件夹并在这些文件中搜索任何关键字 我怎样才能在 C 中做到这一点 这是对 lucene Net 的一个很好的介绍 Lucene Net 简介 CodeProject http www
  • Selenium SendKeys() 与 Chromedriver 使用剪贴板内容而不是电子邮件地址中的“@”字符

    我正在尝试使用 C 中的 Selenium 和 ChromeDriver 将电子邮件地址写入输入字段 到目前为止还没有什么引人注目的事情 但对于包含 字符的字符串 它将发送剪贴板的内容而不是该字符 例如 剪贴板的内容是 MYCLIPBOAR
  • 如何在java中插入多个制表符字符串? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在Java中插入多个制表符字符串 这个例子 getName t t getLastName 不起作用 你的例子应该有效 但是没有理由单
  • 私有标识符仅在针对 ECMAScript 2015 及更高版本 (Angular 9) 时可用

    我正在从 Angular 8 2 升级到 9 1 并且我正在尝试将私有字段更改为 fieldName any在允许的情况下TS 3 8 https www typescriptlang org docs handbook release n
  • 休息模板 org.apache.http.NoHttpResponseException

    我有两个 Spring Boot 服务 A 和 B 还有一个外部服务 C 这是请求路径 Web 浏览器 服务 A 服务 B 外部服务 C 外部服务正在返回返回到前端的资源 对于 A B 和 C 之间的通信 我使用 Rest Template
  • Lion 10.7.3:Apple 目前不接受使用此版本操作系统构建的应用程序

    我在 Lion 10 7 2 上运行 Xcode 4 2 并且有一些应用程序需要更新到 Lion 沙箱 因此我可以将它们重新提交到 Mac App Store Mac 而不是 iOS 在此过程中 我弹出了一个更新到组合更新 10 7 3 的
  • Facebook lint 中的“无法获取作曲家模板数据”是什么意思?

    我在 Facebook 上创建了一个简单的原型应用程序 当我的测试脚本 Ubuntu 命令行上的 JavaScript 由 Node js 提供支持 尝试访问该应用程序时 它会生成以下错误消息 error message Invalid O
  • 没有时区信息的 Javascript ASP.net 日期格式 - 时区偏移

    我有一个客户端 JavaScript 可以在 JavaScript 中生成日期 new Date 2007 5 1 我需要将此日期传递到后面的代码可以访问的隐藏字段 我的问题是 当隐藏字段转换为 DotNet 日期时间时 时间不正确 这是因
  • 接口+扩展(mixin)与基类

    接口 扩展方法 mixin 比抽象类更好吗 如果你的答案是 这取决于 那么它取决于什么 我认为接口 扩展方法有两个可能的优点 接口是可多重继承的 而类则不能 您可以使用扩展方法以不间断的方式扩展接口 实现您的接口的客户端将获得您的新基本实现
  • 如何将socket.io与最新的mean.io一起使用?

    我已经获取了最新的 Mean io 的副本 并注意到与我之前使用的先前版本相比有相当多的变化 现在 我正在做的是创建一个非常基本的聊天应用程序 它使用套接字 io http socket io 有房间 按照套接字文档中的基本设置 我必须实现