问题标签 [primus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2972 浏览

node.js - Primus 与 Express

我想将Primus与 Express 一起使用。Primus 作为 websockets 的抽象层。我使用 Primus 示例效果很好 - 我使用了基本的 Express 示例 - 效果很好。但不知何故,我可以让他们一起工作。

index.html(只是标准的 primus 示例 html)和 primus.js 位于文件夹 ./public

这就是我正在做的事情。

访问时输出

index.html 服务正确。但没有出现对 primus.js 的请求。index.html 在获取 primus.js 时显示 400 错误

当我在上面的代码中禁用 primus 部分并使用正常的快速启动时,我得到以下输出:

所以所有服务都正确。Prmius 在客户端上工作,但服务器端当然没有人回答,因为我禁用了 primus。

知道有什么问题吗?

0 投票
1 回答
3137 浏览

node.js - 如何使用 TOKENS 而不是使用 COOKIES 对 express 和 socket.io 进行身份验证。

我正在构建一个实时移动应用程序(本机),我有兴趣从用户登录屏幕启动该应用程序,然后继续。

我想我需要 Express + primus和 socket.io(或 sockjs)+ passport.socketio + redis(不是 100% 确定我需要 redis)来构建我的后端。

Node.js 占位符

我什至发现这个循序渐进的教程真的很有帮助,它需要我一步一步地制作一个安全的 api。

我的问题是双重的:

  1. 如何调整此示例以使用 TOKENS 而不是 cookie(因为我正在构建本机移动应用程序而不是浏览器 Web 应用程序)并且根据 this 更安全
  2. 如何将 express 与 socket.io 绑定 - 换句话说,socket.io 如何知道用户是否经过身份验证?

我欢迎任何意见或建议。

谢谢你。

0 投票
0 回答
2611 浏览

android - 是否有原生 Android 应用程序的 sockJS 客户端?

我使用 Primus 和 SockJS 作为我的套接字服务器,我想知道 sockjs 是否有一个好的原生 android 客户端(java)!

谢谢你。

0 投票
1 回答
258 浏览

heroku - Express 4.2.0 服务器在使用 primus 时无法在 Heroku 上运行

服务器使用 express 和 primus 在本地运行良好。但是,当托管在 heroku 上时,我的路线会失败。如果我删除路线周围的 primus 包装器,它可以在本地和 heroku 上工作。

我在用着:

  • 快递 4.2.0

  • Primus 2.2.1

0 投票
1 回答
752 浏览

node.js - Node.js primus websocket 集群

尝试大多数 websocket 引擎后,我得出的结论是,最好的方法是使用 Primus(实时框架的通用包装器),以便能够在不改变我的功能的情况下测试任何可能出现的 websocket 框架。

即使 Primus 做到了它所说的,我发现自己处于我想要扩展的情况。

Primus 有许多插件,其中两个是:primus-cluster 和 primus-redis-rooms。这两个是使用 Redis pub-sub 的,以便在您有许多节点进程时进行扩展。我在使用这两个插件时遇到的问题是我无法将消息发送到单个套接字 - spark 。这意味着火花不会被保存 - 传递给 Redis,因此每个进程都知道总共有多少火花。

有谁知道如何实现这一点?

0 投票
1 回答
274 浏览

node.js - Primus.io 拦截服务器上的数据

我在 Express 4 服务器上使用 Primus.io 和 primus-emit。

我正在尝试找到一种方法来挂钩发送/接收的每条消息,包括心跳,以便跟踪我的活动用户,用于应用程序的另一个模块。(这是使用 Redis 排序集完成的)。

由于spark.on('data')没有给我任何东西,因为一切都通过 primus-emit,我正在考虑尝试为此编写我自己的 Primus 插件或中间件,但我不太清楚如何从packet(在插件),或req, res(在中间件代码中),到spark. 当我在 spark 对象上设置 accountNumber 时,在primus.on('connection').

所以我正在寻找的是服务器端代码,这将允许我拦截任何通过活动火花传递的数据,以便能够推spark.accountNumber送到 Redis。

PS。也许我以错误的方式解决这个问题,所以任何提示都表示赞赏。本质上,我系统的另一部分需要了解活动用户,我为此使用了 Redis。

谢谢!!

0 投票
1 回答
620 浏览

javascript - ActionHero js 和自定义 websocket 事件

我正在尝试使用 ActionHero.js 的 websockets 实现。查看文档很清楚如何实现聊天,但我不明白如何从服务器到客户端发出自定义事件并组织复杂的实时应用程序。我正在查看 primus-emitter 项目示例:https ://github.com/cayasso/primus-emitter

有人知道吗?谢谢

0 投票
0 回答
174 浏览

node.js - 子流写入期间节点处理 Primus 套接字断开连接

如果我有一个(同步)进程写入在代码执行期间断开连接的套接字上的子流,那么防止它抛出异常的最佳方法是什么?

(我正在监听套接字的关闭/结束/等事件以从流中删除块,但这些事件处理程序在代码完成之前不会触发)

我应该这样做:

或使用try/catch?

我知道 try/catch 很昂贵,但我没有找到任何有关检查 clientStream.stream 对象以验证它是否存在的信息。也许它已经像 stream.readyState 一样被弃用了?

0 投票
2 回答
446 浏览

express - 如何使用 Primus 写入 Expressjs 会话

使用 ExpressJs 4 和 Primus,我可以共享 Express 会话。

当我将{ foo: 'bar' }值写入会话时,我无法从标准的 http express 调用中检索它。

输出是undefined。你能解释一下为什么吗?谢谢。

0 投票
2 回答
2024 浏览

koa - Node.js http.createServer 抛出 TypeError: listener must be a function

index.js:

跑:node --harmony index

和错误:throw TypeError('listener must be a function');