我正在尝试实现此解决方案(在Win10 x64上),但由于某种原因,所有SocketCluster节点都拒绝相互通信.
Sothis是我的.组态:
我确保州和经纪人服务员都在倾听:
TCP [::]:7777 [::]:0 LISTENING
TCP [::]:8888 [::]:0 LISTENING
Run Code Online (Sandbox Code Playgroud)
从我迄今了解,BrokerServer与沿SocketCluster节点都连接到StatusServer(?)
我可以成功连接BrokerServer到StateServer,但每当我尝试连接任何SocketCluster服务时,它会报告'socket hung'错误.
StateServer:
SC Cluster State Server is listening on port 7777
Sever d08298c6-523f-4c1b-9fcc-efd4e92fab22 at address undefined on port 8888 joined the cluster
Client 10612bde-514f-40d3-9340-7179a1901376 at address undefined joined the cluster
Cluster state converged to active:["ws://[undefined]:8888"]
Run Code Online (Sandbox Code Playgroud)
SocketCluster 例如:
{ SocketProtocolError: Socket hung …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Coinigy websocket api的股票代码数据来获取实时交易流和加密资产的价格.
我尝试了以下演示但没有成功,我得到了一个响应:
"套接字未经过身份验证"
internal class MyListener:BasicListener
{
public void onConnected(Socket socket)
{
Console.WriteLine("connected got called");
}
public void onDisconnected(Socket socket)
{
Console.WriteLine("disconnected got called");
}
public void onConnectError(Socket socket, ErrorEventArgs e)
{
Console.WriteLine("on connect error got called");
}
public void onAuthentication(Socket socket, bool status)
{
Console.WriteLine(status ? "Socket is authenticated" : "Socket is not authenticated");
}
public void onSetAuthToken(string token, Socket socket)
{
token = "{'apiKey' : 'KEYXXXXXX', 'apiSecret' : 'SECRETXXXX'}"; //<---MY key and secret
socket.setAuthToken(token);
Console.WriteLine("on set …Run Code Online (Sandbox Code Playgroud) Not Found: /socketcluster/
[06/Aug/2020 21:45:44] "GET /socketcluster/ HTTP/1.1" 404 3181
Run Code Online (Sandbox Code Playgroud)
当我使用“python3 manage.py runserver”运行 django 网络服务器时,这种情况每 61 秒发生一次。我对网络开发很陌生,不知道这是什么或意味着什么,任何帮助表示赞赏。
PS我需要一个数据库来处理对网络服务器的请求吗
我正在考虑使用socketcluster构建实时应用程序。文档非常清楚,但我找不到以编程方式创建按需频道的方法。
我的需求是:作为用户,我想调用 REST API,它将创建一个立即在服务器上启动并运行的通道。
例如,从客户端调用:POST https://<myServer>/api/channels使用 JSON 正文{ "channel": "myChannel}将在服务器上创建一个myChannel通道,并且我的客户端代码将能够直接订阅(在收到服务器响应后):
var myChannel = socket.subscribe('myChannel');
myChannel.publish('myChannel', 'I am here !');
myChannel.watch(function (data) {
console.log('received data from myChannel:', data);
});
Run Code Online (Sandbox Code Playgroud)
我想这个新创建的通道将使用我的授权中间件,因为中间件是在服务器级别定义的 (wsServer.addMiddleware(wsServer.MIDDLEWARE_SUBSCRIBE, ...)
非常感谢你的帮助,
皮埃尔
我正在尝试构建一个包含即时消息模块的应用程序,主要挑战之一是无论用户数量或交换的消息数量如何,都要保持应用程序的可扩展性。
在我读到的一篇文章中,可以使用带有“订阅”的 GraphQL 构建实时应用程序,除此之外,它使用起来很简单,并且具有最大限度地减少往返对象检索的优势,从而减少资源使用。
但是,如果我们需要向系统添加新的服务器/节点以进行水平扩展怎么办?这可以使用 GraphQL 吗?
以允许水平缩放的 websockets 实现为例,有SocketCluster。我想知道单独由 GraphQL 开发的应用程序是否可以跨多个节点/机器进行扩展,或者它必须与另一个框架(如 SocketCluster)一起使用才能实现这一目标。
node.js ×2
websocket ×2
bitcoin ×1
c# ×1
cryptography ×1
django ×1
graphql ×1
python ×1
python-3.x ×1
web ×1