- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 python 方面,我创建了一个 WebSocketHandler
。
from tornado import gen
from tornado.escape import json_decode
from tornado.websocket import WebSocketHandler
class Echo(WebSocketHandler):
...
@gen.coroutine
def on_message(self, message):
message = json_decode(message)
response = yield self.do_echo(message)
self.write_message(response)
@gen.coroutine
def do_echo(self, message):
# emulate long, blocking call
sleep(randint(0, 5))
raise gen.Return(message)
在 javascript 方面,我同时启动多个客户端(不同的浏览器):
var ws = new WebSocket('ws://localhost:5000/echo');
ws.onmessage = function (evt) {
console.log(JSON.parse(evt.data));
}
for (var i = 0; i < 10; i++) {
var msg = {
messageid: i,
payload: 'An echo message.'
};
ws.send(JSON.stringify(msg));
}
正如预期的那样,所有客户端大致同时完成。但是,每个客户端收到的消息都按照它们发送的确切顺序 (messageid
) 进行记录,就好像 WebSocketHandler
正在排队消息一样。服务器端的 Python 日志也反射(reflect)了这一点。
那么,我的问题是:
请注意,这不是真实代码,而是合理的复制品。
最佳答案
您绝不能在 IOLoop 线程上运行“长时间的阻塞调用”,因为那样会阻塞其他一切。该 sleep
调用(或它代表的任何内容)必须被重写为异步或移交给另一个线程(这对于 concurrent.futures.ThreadPoolExecutor
来说相当容易).参见 http://www.tornadoweb.org/en/stable/faq.html#why-isn-t-this-example-with-time-sleep-running-in-parallel有关更多信息。
关于javascript - Tornado WebSocketHandler 可以异步接收消息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33484500/
我想做的是拥有一个对象(它是一个在单独线程中运行的 gstreamer 进程),以便能够调用 WebSocketHandler 的 write_message() 函数 这是我目前拥有的一段代码 ap
在 python 方面,我创建了一个 WebSocketHandler。 from tornado import gen from tornado.escape import json_decode
我正在使用 Jetty 9 设置 WebSocket 处理程序。我见过使用 WebSocketHandler 或 WebSocketServlet 的示例。 这就是我正在做的事情: public cl
我正在开发一个必须支持客户端-服务器连接的应用程序。为此,我使用了允许我创建 WebSocket 的 tornado 模块。我打算始终处于运行状态,至少在服务器端。所以我非常担心在这些连接上创建的每个
我正在尝试传递 my_object 的实例作为初始化 WebSocketHandler 时的参数Tornado 中的实例,因此我可以在通信期间使用它。我尝试执行以下操作,但没有成功。 class WS
我在为通过 PerConnectionWebSocketHandler 使用的实现 WebSocketHandler 的类进行简单属性注入(inject)时遇到问题。 这个示例在没有 @Value 注
我有一个像这样初始化的 Tornado HTTPServer: ssl_options = { "certfile": "mycert.crt", "keyfile": "mykey.
我正在使用 Microsoft.Web.WebSockets对于一个应用程序。 我有一个用户集合WebSocketCollection group;我需要向除了一个人之外的所有人发送消息 group
是否可以同时运行 WebSocketHandler 和 WebAppContext?我使用的是最新版本 9.2.1.v20140609。我尝试了下面的配置,但是在 Websocket 调用 local
本文整理了Java中org.springframework.web.socket.WebSocketHandler.supportsPartialMessages()方法的一些代码示例,展示了WebS
本文整理了Java中org.springframework.web.socket.WebSocketHandler.handleMessage()方法的一些代码示例,展示了WebSocketHandl
本文整理了Java中org.springframework.web.socket.WebSocketHandler.afterConnectionEstablished()方法的一些代码示例,展示了W
本文整理了Java中org.springframework.web.socket.WebSocketHandler.afterConnectionClosed()方法的一些代码示例,展示了WebSoc
本文整理了Java中org.springframework.web.socket.WebSocketHandler.handleTransportError()方法的一些代码示例,展示了WebSock
通过以下两个最小示例应该可以重现该问题: 使用 app.run() 的最小示例 from flask import Flask app = Flask(__name__) @app.route('/'
我是一名优秀的程序员,十分优秀!