【问题标题】:socketio client fails to loadsocketio 客户端加载失败
【发布时间】:2015-09-24 09:46:22
【问题描述】:

我目前正在构建一个使用 websockets 的烧瓶应用程序。为此,我想使用 flask-socketio 库。我已将客户端示例复制为per the docs instructions:

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.min.js"></script>
<script type="text/javascript" charset="utf-8">
    var socket = io.connect('http://' + document.domain + ':' + location.port);
    socket.on('connect', function() {
        socket.emit('hello', {data: 'Hello there!'});
    });
</script>

和一个简单的服务器端处理程序:

@socketio.on('hello')
def handle_hello(message):
    print message

但是我在 borwserwindow 控制台中收到以下错误:

Uncaught TypeError: Cannot read the property 'onClose' of null.

有人知道我在这里做错了什么吗?

【问题讨论】:

    标签: python-2.7 flask websocket


    【解决方案1】:

    那是因为您在客户端应用程序中为 socket.io 获取错误的 javascipt 文件。 改变

    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.min.js"></script>
    

    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.4.6/socket.io.js">
    

    【讨论】:

      【解决方案2】:

      我也遇到了同样的问题。 原因是与 python 模块不兼容。 您可以尝试安装这些版本。

      gevent-1.1b1
      greenlet-0.4.9
      Flask-SocketIO-0.6.0

      它对我有用。

      【讨论】:

      • 顺便说一下,sockjs-1.1.0 有问题。您可以使用 sockjs-1.0.3 或 sockjs-1.1.1
      【解决方案3】:

      我有同样的问题,当我将版本从 0.9.16 更改为 1.3.6 时,它对我有用。

      <script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.6/socket.io.min.js"></script>
      

      【讨论】:

        猜你喜欢
        • 2012-11-03
        • 2023-03-25
        • 2019-12-09
        • 2018-06-18
        • 1970-01-01
        • 1970-01-01
        • 2016-08-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多