问题标签 [sockjs]

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

websocket - SockJs - 尝试从安全页面创建不安全的 websocket 连接时出错

试图连接到SockJs 服务器。我正在从安全的https页面运行以下代码https://localhost/index.php

我明白SecurityError: The operation is insecure.了,它回落到openxhr-polling

如果我从http http://localhost/index.php websocket 运行它,则建立连接。

是否无法从安全页面创建不安全的 websocket?

更新这发生在 Firefox 中,但在 Chrome 中我可以打开 websocket

更新 2最终我通过使用 https 服务器解决了它。看这里。

更新 3相关的 Firefox Websocket 安全问题

0 投票
1 回答
2073 浏览

javascript - 从 sockjs-node 广播的有效方法?

我想向连接到我的 sockjs-node 服务器的所有客户端广播消息。

现在我有以下代码

有没有更有效的方法来做到这一点?

也许

谢谢

0 投票
1 回答
1300 浏览

rabbitmq - 如何使用 Sockjs-Stomp 在 Rabbitmq 中创建自动删除队列

我无法通过 sockjs 创建自动删除队列,它会创建持久队列,但如果不使用,几分钟后不会删除队列。这个特性在 rabbitmq 中可用,但在 sockjs 中不支持。

请建议我如何通过 sockjs 创建自动删除队列

0 投票
1 回答
1897 浏览

python - sockjs - 实现房间的例子

我想让用户创建并加入一个“房间”,以便他们可以协作。

我正在查看SockJs Multiplexer 服务器,想知道我是否可以利用其中的一些来创建和广播到特定的频道/房间。

在示例中,手动创建了一个通道客户端连接到该通道

将这些频道视为房间有效吗?

有没有办法动态创建这些通道而不是在服务器上手动声明它们?

0 投票
1 回答
357 浏览

websocket - 使用 chrome 框架代替 SockJS

我正在使用 Go 编程语言创建 Web 应用程序。

在我的项目中,我需要支持 IE>=8,Firefox >=13 Opera >=12 ...
项目的一部分依赖于实时推送通知。Go 没有很好地支持 Socket.IO 或 SockJS 从 http 推送方法中抽象出来,但它内置了对 websockets 的支持。

我想使用 Go websockets 在 Go 中实现实时推送模块 - 在 http Web 应用程序中,而不是使用 SockJS 的其他语言创建其他服务。这将需要 IE8、IE9 用户安装chrome frame插件。

Q:这个方案除了强制IE8和IE9用户安装chrome frame外,还有什么缺点吗?

Q2为推送通知提供单独的服务有什么优点吗?(除了具有更好的浏览器兼容性)?

优点是我不需要维护单独的服务,我可以重用 Go 代码。

0 投票
0 回答
1317 浏览

python - 使用 Pika + sockjs-tornado 向所有客户端广播消息

我是基于 WebSockets 的实时应用程序的新手,并且停留在某一时刻。我的应用程序具有以下组件:

  1. 发生一些通用事件时触发的简单 Python 脚本。它接收数据并使用 pika 将其发送到队列 (RabbitMQ)。
  2. Tornado 应用程序(使用 sockjs-tornado)从队列(pika 异步客户端)接收消息,处理其内容,将新的应用程序状态保存到数据库并将数据广播到客户端(SockJS 客户端)。与客户端的通信只有一个方向——它们只是连接到服务器并接收数据。

问题是我不知道如何将从队列接收到的数据传递给所有客户端。我已经完成了发布/订阅交换,所以当用户连接到服务器时,会为每个用户与 RabbitMQ 建立新连接,但这不是我想要的。以下是我目前所掌握的。

常见/pika_client.py

跟踪器.py

它可以工作,但是就像我提到的,我希望只有一个连接来排队、接收消息、做一些事情并使用广播()方法向客户端广播结果。提前感谢您的帮助。

0 投票
3 回答
240863 浏览

node.js - 哪个 websocket 库与 Node.js 一起使用?

目前有大量用于 node.js 的 websocket 库,最流行的似乎是:

但是我在它们之间找不到任何可靠的具体比较......显然 Socket.io 很棒,但已经过时并且构建失败。ws 和 websocket-node 都声称它们是最快的。engine.io 似乎是新的,但比更轻的 altarntives 重得多。

如果我们或某人能够整理出一个答案,作为使用哪个套接字库以及何时使用以及它们之间的比较的指南,那将是令人惊奇的。

0 投票
2 回答
2019 浏览

python - 龙卷风中的 Django 用户

我一直在使用下面的代码在龙卷风中获取 django 用户:

我的问题如下:
Django 更改日志记录配置,我再也看不到龙卷风的任何日志输出。如何重新初始化龙卷风日志记录?还有其他方法可以将 Django 与 Tornado 集成吗?

提前谢谢了。

0 投票
6 回答
60069 浏览

json - 如何解组转义的 JSON 字符串

我在 Go 中使用 Sockjs,但是当 JavaScript 客户端将 json 发送到服务器时,它会对其进行转义,并将其作为 [] 字节发送。我试图弄清楚如何解析 json,以便我可以读取数据。但我得到这个错误。

json:无法将字符串解组为 main.Msg 类型的 Go 值

我怎样才能解决这个问题?html.UnescapeString()没有效果。

0 投票
1 回答
93 浏览

python - 龙卷风超时和服务器故障

我现在正在开发基于龙卷风的实时游戏,tornado-sockjs。在我们的游戏应用中有很多不同的超时策略:TIMEOUT_GAME_IF_NOBODY、TIMEOUT_GAME_IF_SERVER_OFF。这些超时具有可以直接与存储一起使用的回调(更新、插入等)。问题是将超时策略组织到模块中的正确方法是什么?!如果服务器发生故障,我们如何重新执行回调?想象一下,三个超时挂起,突然处理这些超时的服务器崩溃了。这意味着有些信息没有更新。