我目前正在构建一个使用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.
有人知道我在这里做错了吗?
答案 0 :(得分: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">
答案 1 :(得分:0)
我遇到了同样的问题。 原因是与python模块不兼容。 您可以尝试安装这些版本。
GEVENT-1.1b1
greenlet-0.4.9
Flask-SocketIO-0.6.0
这对我有用。
答案 2 :(得分:0)
我遇到同样的问题,当我将版本从0.9.16更改为1.3.6时,它对我有用。
<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.6/socket.io.min.js"></script>