问题标签 [sockjs-tornado]

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

openssl - Tornado 服务器上的 OpenSSL 错误

我将我的 Tornado 服务器配置为:

tls.crt并且tls.key是我的域的通配符,我在 HAPROXY 后面的堆栈中的另一个应用程序中成功使用了它,后者终止了 TLS。

启动时服务器报告 OpenSSL 版本:

浏览器

但是,当/从浏览器获取时(最终显示“此网页不可用”),这会出现在 Tornado STDOUT 中:

卷曲

卷曲端点显示:

openssl s_client

只是挂着:

我已经克隆https://github.com/openssl/openssl.git并检查了1.0.1k标签,但找不到_ssl.c,所以这里的指针将是一个好的开始。

我还将CryptoNark指向我的域,但只是得到空输出。

主机操作系统是 AWS AMI ami-6330b7141。应用程序的 Docker 容器是python:2.7version 31ff30c97af1

更新

这行_ssl.c似乎是@benjamin-peterson 的Python 3 反向移植内容的一部分,我将尝试使用最新的 Python 3.4。

0 投票
0 回答
512 浏览

python - 为 octoprint 插件创建自己的 websocket

我目前正在为 octoprint 开发一个插件,它使用sockjs-tornado作为服务器端来创建一个 websocket。现在我尝试创建自己的一个(因为 octoprint 套接字的默认实现不支持将传入消息的事件转发到我的插件)。我得到的一切都是 404,不幸的是,谷歌在这方面并不是一个很好的朋友。

我可以创建一个烧瓶蓝图插件,据我了解,每个http请求都会直接重定向到我的插件,但我不知道如何连接烧瓶蓝图和龙卷风套接字。

有没有人有一段很好的代码来连接龙卷风和烧瓶蓝图?

0 投票
1 回答
255 浏览

python - 发布到特定频道/组

我正在调查swampdragon chat_example。在router.py按照文档get_subscription_channel中给出了频道名称。
当我尝试更改重新运行值时,它仍然有效。

如何将消息限制到特定的组/频道。我需要在前端做什么。

这是订阅方法。

0 投票
2 回答
888 浏览

python - 使用 sockjs-tornado 的私人消息传递

我已经使用 sockjs-tornado 实现了聊天功能,并且可以将消息存储在 RethinkDB 中。

您能否帮助我了解如何在 sockjs-tornado 中建立用于消息传递的私人频道?(我的意思是私人谈话/一对一)

下面是我的服务器端代码中的 on_message 函数 -

目前,这正在向所有连接的客户端广播。可能我应该有一个通道 id 并且只向两个具有相同通道 id 的客户端发送消息,但是我该如何实现它或者有没有更好的解决方案呢?

在客户端,我有以下 javascript -

我正在使用 python 3.4 - Django 1.8.4 和 Rethinkdb

0 投票
0 回答
300 浏览

python - Sockjs 和龙卷风:如何发送和读取数据

我正在尝试为一个小型大学项目学习 sockjs。

我有一个本地服务器(具有典型的 LAMP 配置),我的目标是编写一个能够将数据发送到客户端浏览器以更新文本信息的 python 脚本(在我的本地服务器上运行)。

Sockjs 在我看来是最好的解决方案(用于 python 服务器的 tornado-sockjs)。我阅读了教程示例(https://github.com/mrjoes/sockjs-tornado/tree/master/examples),但我很难理解基本功能。

理解示例代码将非常有用。一个例子可能是:

python-server 脚本每 5 秒生成一个随机数,并将该数发送给客户端。在网页中有一个明确的元素来更新这个值。在同一个网页中,有一个按钮可以将文本消息发送到 python 服务器。当 python 服务器收到此消息时,在服务器控制台中打印它。

预先感谢您的帮助。

我希望这篇文章对其他人有用。

0 投票
1 回答
1085 浏览

python-3.x - ImportError:无法导入名称“错误”

将 sockjs 与 Tornado 一起使用。在服务器运行时,这是返回的跟踪:

0 投票
1 回答
908 浏览

python - Python龙卷风操作系统错误24打开的文件太多

我正在使用用 Python 3.5 编码的 websocket 服务器。这是提供我的网站实时信息所必需的。

我使用的“服务器”库称为tornado(4.3 版),它处理 websocket 连接和 http 请求。为了向后兼容(如果浏览器还不支持 websocket),我使用 python 库sockjs-tornado(版本 1.0.3),它还为 websocket 连接添加了一些附加功能。

此连接使用协议 wss://,因此它被加密并为套接字连接加载证书。问题是当服务器运行了很长时间时我得到一个错误。

我已经增加了 linux 服务器上打开文件的限制,但是如果 python 脚本在 24 小时后没有重新启动,那么如果连接了大约 300 个客户端,就会弹出这些错误。如果我在这段时间内重新启动脚本,一切都会再次正常运行,即使在每个人都重新连接之后也是如此。

我真的不知道该怎么做,因为龙卷风似乎没有正确关闭证书文件并在每个新连接上重新加载它们。

0 投票
1 回答
345 浏览

python - Tornado 服务器使用大部分 cpu,而使用 tornado-sockjs 并且只有两个客户端。

我正在使用 Tornado 服务器,4.4.2 和 pypy 5.9.0 和 python 2.7.13,托管在 Ubuntu 16.04.3 LTS

一个新的客户端登录并创建了一个新类并传递了套接字,因此可以维护对话。我正在使用全局客户端 [] 列表来包含这些类。初始对话框如下所示:

ws 类如下所示,我使用龙卷风周期性回调每 20 秒更新客户端的特定信息

我还在启动时以 60 秒的周期回调开始,以监视客户端的关闭连接并将它们从客户端 [] 列表中删除。我把它放在启动线上以在内部调用 def

如果我使用 TOP 监视服务器,我会看到它使用 4% 的 cpu 典型值,并立即爆发到 60+,但后来,说几个小时后它变成了 90% 并保持在那里。

我使用了 strace,我看到在 strace -c 视图中显示了对同一文件的大量 Stat 调用,但我在使用 -o trace.log 的文本文件中找不到任何错误。我怎样才能找到这些错误?

但我也注意到大部分时间都消耗在 epoll_wait 中。

%时间

  • 41.61 0.068097 7 9484 epoll_wait
  • 26.65 0.043617 0 906154 2410 统计
  • 15.77 0.025811 0 524072 读取
  • 10.90 0.017840 129 138 刹车
  • 2.41 0.003937 9 417
  • 2.04 0.003340 0 524072
  • 0.56 0.000923 3 298 发送至
  • 0.06 0.000098 0 23779 获取时间
  • 100.00 0.163663 1989527 2410 总计

注意上面的 2410 错误。

当我使用附加的 pid 查看 strace 输出流时,我只看到对相同文件的无休止 Stat 调用..

有人可以建议我如何更好地调试这种情况吗?由于只有两个客户端和客户端更新之间的 20 秒,我预计 CPU 使用率(在此原型阶段没有其他站点用户)将低于 1% 左右。

0 投票
1 回答
93 浏览

python - 龙卷风中的私人消息

我是 tornado(基于 python 的网络服务器)的初学者。我必须创建一个应用程序,该应用程序将在两个用户之间拥有公共聊天室和私人消息传递。所以,我一直在寻找一个关于龙卷风的好教程来实现相同的功能,但我发现我们可以创建 websockets,一旦我们有了连接到套接字,我们可以向服务器发送消息,我们可以打开浏览器的多个选项卡来复制多个用户。所以所有用户都可以向服务器和每个其他用户发送消息,并且可以看到所有这些消息,但我需要在两个用户之间创建私人消息聊天,比如 whatsapp。那么我可以对龙卷风做同样的事情吗?请帮帮我。任何帮助都是不言而喻的。