首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >环卫活动环与高速公路

环卫活动环与高速公路
EN

Stack Overflow用户
提问于 2017-12-03 16:34:56
回答 1查看 661关注 0票数 4

我有一个用萨尼奇写的项目

代码语言:javascript
复制
application = Sanic(__name__)
...
application.run(host=application.config.HOST, port=application.config.PORT,
                debug=application.config.DEBUG, log_config=application.config.LOG)

我的网站有一个实时操作的部分

对于实时部分,我想在sanic循环中使用高速公路

我还有自定义聊天协议

代码语言:javascript
复制
class ChatServerProtocol(WebSocketServerProtocol):
    ....

聊天室:

代码语言:javascript
复制
class ChatFactory(WebSocketServerFactory):
    ...

我得到sanic循环并将工厂设置为ChatFactory

代码语言:javascript
复制
async def after_server_start(app, loop):
    factory = ChatFactory(u"ws://127.0.0.1:9000")
    factory.protocol = ChatServerProtocol

    loop.set_task_factory(factory)

以上代码失败:

代码语言:javascript
复制
Error: Bad Request
Traceback (most recent call last):
  File "httptools/parser/parser.pyx", line 296, in httptools.parser.parser.cb_on_message_complete (httptools/parser/parser.c:4868)
File "/Users/XXX/Documents/Projects/sanic_env/lib/python3.6/site-packages/sanic/server.py", line 227, in on_message_complete
self.execute_request_handler()
File "/Users/XXX/Documents/Projects/sanic_env/lib/python3.6/site-packages/sanic/server.py", line 234, in execute_request_handler
self.stream_response))
File "uvloop/loop.pyx", line 1146, in uvloop.loop.Loop.create_task (uvloop/loop.c:24809)
TypeError: __call__() takes 1 positional argument but 3 were given

问题

A:我可以用sanic事件循环来做高速公路吗?

‌B:如果是,应该怎么做?

EN

回答 1

Stack Overflow用户

发布于 2018-06-10 14:03:18

嗯。这是一个复杂的问题。现在回答:不确定。

如果您查看高速公路巨蟒,它指定its用于扭曲/异步,没有发现提到uvloop。尽管我可能补充说,如果您与我的一位同事在crossbar.io:https://github.com/crossbario/autobahn-python/issues/925中讨论这个讨论,那么我认为应该可以为异步交换uvloop。

根据上面提到的问题925,您需要创建一个新的事件循环变量来访问uvloop。

我自己还没试过,希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47620582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档