问题标签 [socketcluster]

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 回答
1146 浏览

node.js - 连接 socketcluster 服务器

我正在尝试实现这个解决方案(在 Win10 x64 上),但由于某种原因,所有 SocketCluster 节点都拒绝相互通信。

在此处输入图像描述

所以这是我的cur。配置:

  • 1 个状态服务器 [7777]
  • 1 个代理服务器 [8888]
  • 2 个 SocketCluster 服务器在端口 [8000, 8001] 上运行
  • 1 LoadBalancer [2000] 在 2 个节点之间划分流量。

我确保 State 和 Broker 服务器都在监听:

从我目前所了解BrokerServer的情况来看,SocketCluster节点应该都连接到StatusServer(?)

我可以成功连接BrokerServerStateServer,但是每当我尝试连接任何SocketCluster服务时,它都会报告“套接字挂起”错误。

StateServer

SocketCluster实例:

0 投票
1 回答
785 浏览

socketcluster - 如何在 socketcluster 上以编程方式创建通道?

我正在考虑使用socketcluster来构建一个实时应用程序。文档非常清楚,但我找不到以编程方式按需创建频道的方法。

我的需要是:作为用户,我想调用一个 REST API,它将创建一个通道,该通道将立即在服务器上启动并运行。

例如,从客户端调用:POST https://<myServer>/api/channels使用 JSON 正文{ "channel": "myChannel}将在服务器上创建一个myChannel通道,并且我的客户端代码将能够直接订阅(在收到服务器响应后):

我想这个新创建的频道将使用我的授权中间件,因为中间件是在服务器级别定义的 (wsServer.addMiddleware(wsServer.MIDDLEWARE_SUBSCRIBE, ...)

非常感谢你的帮助,

皮埃尔

0 投票
1 回答
707 浏览

node.js - SocketCluster 中间件与 promise 握手

我正在构建一个同时服务于 http 和 ws 的应用程序。用户首先通过 HTTP 登录到 Laravel 服务器。这将返回一个用于允许通过 WS 登录的 JWT。

Ihv 添加了一个 MIDDLEWARE_HANDSHAKE 获取令牌并向 Laravel 服务器发出请求以询问该令牌是否有效以及用户是否有权访问 WS(并非每个登录的用户都可以访问 WS);

客户端代码:

SocketCluster 服务器代码:

在像这样实现这个中间件时,即使验证成功,我也会不断从 ws 服务器获得这个响应:

但是,如果我像这样实现 HANDSHAKE_MIDDLEWARE:

一切顺利:

所以问题似乎出在 Promise 回调中。

如果这不是正确的实施方式,有什么建议吗?

谢谢。

0 投票
1 回答
1102 浏览

node.js - 一台机器上有多个 websocket 服务器

我一直在使用套接字集群来设置套接字服务器。无论如何使用在同一端口上的同一台机器上运行的多个套接字集群?

前任:

应用程序连接到 ws://server.com/app-one 另一个应用程序连接到 ws://server.com/app-two

0 投票
2 回答
979 浏览

docker - 本地部署在 minikube 上

我已经通过使用 docker-files 直接在本地部署和创建服务 (socketcluster请参阅此链接以获取文件)。而且我还使用我提到的链接中提供的文件在同一个集群中创建了一个服务。据我了解,默认情况下,这些服务属于类型。scc-brokerscc-statekubernetesminikube.yamlingress.yamlClusterIP

服务的部署在 vm (minikube) 上正常工作。状态设置为在 Kubernetes 仪表板上运行

  • 豆荚

  • 部署

但我面临的问题是 scc-state、scc-broker、socketcluster 服务器没有暴露公共端点。所以目前我无法理解如何从外部访问服务,即在虚拟机之外(在 minikube 上运行)。

这些图像是直接从 kubernetes yml 文件构建的,并且禁用了入口 TLS 安全性。

我是否错过了有关如何访问主机上的 socketcluster 的任何方面?我是否应该将服务类型指定为任何其他类型,而不是ClusterIP我知道使用此类型可确保服务仅在集群中公开。但我再次怀疑,如果我正在使用ingress,它应该有助于访问 vm 之外的服务。我需要ingress controller单独使用 NGINX 吗?

任何线索将不胜感激。

谢谢!

PS 按照指南进行部署。

0 投票
1 回答
486 浏览

javascript - 从外部工作人员向 socketcluster 通道发送消息

我正在观看一个外部资源,每当数据发生变化时,我想根据数据向特定通道发送消息。

我发现有两种方法可以通过反复与 SC 文档碰撞来做到这一点:

  • 通过工作人员观察,这并不理想,因为当有 1000 个客户端在线时,外部数据源会受到来自每个工作人员的请求的冲击

  • 从客户那里,这并不理想,因为我必须订阅频道,发送我的消息,然后取消订阅

如何从 server.js 中执行此操作?

0 投票
1 回答
234 浏览

swift3 - Swift 项目中的 Objective C pod - 正确的桥接头?

我正在尝试将用 Objective C 编写的 SocketClusteriOS ( https://github.com/abpopov/SocketCluster-ios-client ) pod 添加到 Swift 项目中。我已经在 Objective C 项目中测试了这个 pod,url 似乎工作正常,但是当我尝试将它添加到 Swift 项目时,我遇到了奇怪的错误:

我可能会认为桥接头的问题。我将链接附加到我的测试应用程序存储库。https://github.com/davigr/SocketClusterSwift。SocketCluster-ios-client 使用 SocketRocket pod,我在桥接头中也提到了这个 pod。不幸的是,当我尝试连接时,它无法连接。我在Objective C项目中做了同样的代码,一切都很好。谁能帮我解决这个问题?项目设置或桥接头可能有问题我的桥接头:

0 投票
1 回答
791 浏览

angular - 将 ionic3 与套接字集群 websocket 或 socket.io 连接

我有工作代码,cordova但想将其转换为ionic3但找不到任何参考。我不想使用 Fire-base 我有自己的套接字服务器。 I know i could have added some of my code to it but i am only able to find of ionic 2#

0 投票
1 回答
253 浏览

node.js - node-mongodb 防止 websocket 数据丢失

我在使用SocketCluster作为其发布/订阅的 websocket API 的客户端。

身份验证后,我通过每秒接收一次 json 数据

形式的

我不会打印数据,而是将其保存到 mongo db。

如果某些数据无法上传,我需要某种安全网。回想起来,允许我将数据从 websocket 上传到 mongo db 的东西。

这样做的最佳做法是什么?我希望这个问题不会太宽泛,我是 node 和 mongo db 的新手。

谢谢!

0 投票
1 回答
657 浏览

c# - 无法使用 Socketcluster V2 for Coinigy Exchange websocket ticker api 进行身份验证

我正在尝试使用 Coinigy websocket api 的代码数据来获取实时交易流和加密资产的价格。

我尝试了以下演示,但没有成功,我得到以下响应:
“套接字未通过身份验证”