Socket.js无法使用RaspberryPi

时间:2015-11-30 06:50:30

标签: javascript python flask socket.io raspberry-pi

我正在尝试为随机字符串的自动生成器创建一个烧瓶应用程序。我想用socket.js实现。所以一切都很顺利,除了与socket的连接。它适用于PC,但不适用于覆盆子Pi。

这是文件结构

|-- app.py
|-- static
|   `-- js
|       |-- ajax.js
|       |-- hello_world.js
|       `-- Socket.js
`-- templates
        `-- hello_world.html

这是我的代码示例。

app.py

from flask import Flask,render_template
from flask.ext.socketio import SocketIO, emit
import random
import string

app = Flask(__name__)
socketio = SocketIO(app)

class AppObject():

    def __init__(self):
        self.app = Flask(__name__)
        self.socketio = SocketIO(self.app)

    @app.route('/')
    def Hello():
        global appObject
        sampleText = appObject.stringGen()
        return render_template('hello_world.html', name=sampleText)

    def stringGen(self):
        chars = "".join( [random.choice(string.letters) for i in xrange(15)] )
        return chars

if __name__ == '__main__':
    appObject = AppObject()
    appObject.socketio.run(app,host="0.0.0.0", debug=True)

hello_world.js

$(document).ready(function() {
namespace = '/test';
var socket = io.connect('http://' + document.domain + ':' + location.port + namespace);
var b1 = document.getElementById('text-id');

});

hello_world.html

<html>
<head>
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <script src="static/js/ajax.js"></script>
   <script src="static/js/hello_world.js"></script>
   <script type="text/javascript" src="static/js/Socket.js"></script>
   <script type="text/javascript" language="javascript"></script>

</head>

   {% if name %}
   <h1 id="text-id"> {{ name }}!</h1>
   {% else %}
   <h1>Hello World!</h1>
   {% endif %}
</html>

这是我的错误enter image description here

当我实现所有这些时,我在socket.js中收到错误TypeError: a.transport is null。它指向用于在JavaScript(var socket = io.connect('http://' + document.domain + ':' + location.port + namespace);)中连接套接字的行。我通过ssh检查了另一台电脑。但它工作正常,我不知道为什么。请帮忙解决这个问题。 谢谢。

0 个答案:

没有答案