问题标签 [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 投票
2 回答
2104 浏览

javascript - 有没有办法在浏览器选项卡之间共享套接字连接

有些人已经在其他地方问过这个问题,我只是不确定这里是否存在。无论如何,我使用Primus.iowithengine.io作为它的变压器。我想知道是否可以在浏览器(客户端)上共享 websocket 连接。就像我连接一个客户端并在另一个选项卡上连接另一个客户端一样。理想情况下,他们应该获得相同的连接,如果我通过套接字发送一些东西,两个选项卡都应该能够收到消息。

其他人提到过使用它localStorage作为在不同选项卡之间共享/通信相同数据的一种方式,但我只是觉得它不整洁。

非常感谢您的帮助。

最好的,

0 投票
2 回答
736 浏览

javascript - 如何防止客户端发送巨大的 websocket 数据包?

我正在制作一个使用 WebSockets 在浏览器和节点服务器之间进行通信的 webapp。

如果您打开调试控制台 (F12),您可以访问套接字实例并对其进行写入。

例如,socket.send('packetname', 'data')

是什么阻止了某人打开控制台并写这样的东西?

socket.send(new Array(99999));

发送到服务器的所有这些数据都可能是压倒性的,当它到达那里时,带宽已经被使用并且已经被处理。当然有验证,但此时为时已晚,资源已经用于处理它。

您也不能只检查数组的长度,因为有人可以发送一个数组,其中第一个元素是一个巨大的数组,或者其他任何东西。我认为没有办法计算字节大小,所以我猜最好的选择是对数据进行字符串化以检查其大小(这非常慢)?

我所有的数据包都非常小。我正在寻找一种方法来防止超过一定大小的数据包被发送到服务器。这可能吗?

0 投票
0 回答
184 浏览

c# - c#实现primus websocket

我想使用 c# 连接到一个 Web 服务器(nodeJs)。服务器接受来自primus websocket(javascript)的连接,我正在为c#寻找一个实现,但它似乎不存在。

这里有人知道连接到服务器的其他方法吗?

谢谢你。

0 投票
1 回答
390 浏览

node.js - 使用 Polymer 和节点的实时聊天应用程序

我有一个使用 Polymer 作为前端的节点应用程序。该应用程序在 nginx 反向代理后面运行,该代理使用 HTTP2 处理 HTTP 等。我正在使用带有签名 cookie 的 cookie 会话。

我现在需要在应用程序中添加“实时聊天”;我认为在 2016 年会很容易......男孩是我错了。

我的第一个停靠港是 Primus。但有些事情我不太明白:

  • 如果重新启动节点服务器会发生什么?所有客户端都需要重新连接吗?
  • 客户端可以“注册”到特定的事件类型(然后应该通过 Primus/Websockets/等接收)。因此,每个打开的“选项卡”都需要自己的 ID;如果服务器重新启动,客户端重新连接,服务器可以重用“订阅”列表吗?(这要求客户端具有相同的“id”)

有没有我不知道的所有这些的标准解决方案?

0 投票
1 回答
411 浏览

node.js - Primus websocket 服务器无法从客户端读取消息

我使用 Primus 创建一个 websocket 服务器。我使用 wscat 命令来测试该服务器。它能够连接到 websocket 服务器。但是服务器无法接收来自客户端的任何消息。以下是 Primus 代码:

下面是我测试它的方式:

从上面的命令你可以看到客户端可以在请求连接时收到消息。但是后来我向服务器发送了一个“你好”,而客户端没有收到来自服务器的反馈消息。服务器也不打印“hello”消息。我的代码有什么问题吗?该spark.on('data', function(data)方法似乎没有效果。

0 投票
1 回答
292 浏览

node.js - 如何使用 feathersjs-primus 设置 websocket 连接

我正在尝试通过以下链接通过羽毛 js + primus 设置 websocket:https ://docs.feathersjs.com/real-time/primus.html 。但我不知道如何从服务器端的 primus 获取 spark 实例。下面是我的服务器代码:

在上面的代码中,服务器可以在 create() 方法中从客户端获取消息。但是我怎样才能在那个方法中从 primus 获取 spark 实例呢?我想使用spark.write方法将消息发送回客户端。

下面是配置羽毛服务的服务器代码:

以下代码用于在服务器端注册事件侦听器,但无法接收来自客户端的事件:

在客户端代码中,我使用以下代码向服务器发送消息:

上面的代码有什么问题?

0 投票
1 回答
49 浏览

node.js - 使用 feathersjs 设置 primus 服务器时出现 PrimusError

我按照这个链接(https://docs.feathersjs.com/real-time/primus.html)通过feathersjs-primus创建了一个websocket服务器。下面是app.configure我正在使用的代码:

运行此代码时出现以下错误:

我所做的一切都是按照上面链接中的说明进行的。为什么我会收到此错误消息?我还错过了什么?

0 投票
1 回答
200 浏览

node.js - 如何使用 Primus 中间件获取 spark 实例

我已经设置了一个 Primus websocket 服务,如下所示。

它工作正常。在上面的代码中,我用来spark.write向用户发送响应消息。现在我想将它转换为在中间件中使用。代码变成如下:

在 doStuff() 方法中,如何让 spark 实例将消息发送回客户端?

0 投票
1 回答
1133 浏览

feathersjs - 如何使用primus在feathersjs服务方法上添加更多参数

我检查了此链接https://docs.feathersjs.com/real-time/primus.html以设置服务方法的其他参数,但我不知道该怎么做。

以下是我的服务类:

以下是primus配置:

在手册中,它提到了如下内容:

但我不确定这个功能在做什么。而且我还尝试在我的应用程序中添加上面的代码,我会得到socket.request未定义的错误。在这种情况下如何在服务类上添加更多参数?

0 投票
1 回答
145 浏览

feathersjs - 如何打包feathersjs+primus生成的客户端js?

我使用feathersjs 作为restful API,使用primusjs 作为websocket 连接。下面是我用来生成 primus.js 文件的代码:

为了让我的客户使用生成的primus.js文件。我必须从我的服务器上提供这个文件。从客户端,它可以像下面这样使用它:

但是我的客户正在使用 webpack 将每个依赖项打包成几个大的 js 文件。如果它是自动生成的文件,我如何primus.js在客户端打包文件?