2015-09-24 91 views
2

我目前正在構建一個使用websocket的應用程序。爲此,我想使用flask-socketio庫。我複製了客戶端的例子爲per the docs instructionssocketio客戶端無法加載

<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. 

有人知道我在這裏做錯了什麼?

回答

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"> 
0

我也遇到了同樣的問題。 原因與python模塊不兼容。 您可以嘗試安裝這些版本。

GEVENT-1.1b1
greenlet-0.4.9
燒瓶SocketIO-0.6.0

它workd我。

+0

順便說一句,sockjs-1.1.0有一些問題。你可以使用sockjs-1.0.3或sockjs-1.1.1 – vincentwang

0

我有同樣的問題,當我從0.9.16版本更改爲1.3.6它爲我工作。

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