iOS - 如何使用带有out命名空间的flask-socketIO连接到flask服务器?

时间:2016-11-17 05:15:33

标签: python ios sockets flask flask-socketio

我正在构建一个从套接字接收数据的iOS应用。我对套接字的事情很新。

我使用flask框架来构建我的服务器。为了实现长轮询,我找到了flask-socketIO包。但是我还没有找到一些有用的教程。

我使用CocoaAsyncSocket来同步并向服务器发送数据,当我测试一个天真的python套接字时,它工作正常。代码:

from socket import *
from time import ctime

serverClient = socket(AF_INET, SOCK_STREAM)

HOST='127.0.0.1'
PORT=8808
BUFSIZ=1024
ADDR=(HOST, PORT)

serverClient.bind(ADDR)
serverClient.listen(5)

while True:
    print('waiting for input')
    clientSocket, addr = serverClient.accept()
    print('connect from ', addr)
    while True:
        try:
            data= clientSocket.recv(BUFSIZ)
        except:
            print(e)
            clientSocket.close()
            break
        if not data:
            break
        s='Hi,you send me :[%s] %s' %(ctime(), data.decode('utf8'))
        clientSocket.send(s.encode('utf8'))
        print([ctime()], ':', data.decode('utf8'))

clientSocket.close()
serverClient.close()

但是,我不知道如何将它与我的烧瓶服务器放在一起。这也是我尝试flask-socketIO的原因。

document的指示下,我实施

@socketio.on('connect', namespace='/test')
def test_connect():
    emit('my response', {'data': 'Connected'})

在我的views.py

我可以不指定namespace吗?但是,如果没有指定命名空间,默认命名空间为'/',它是否会与我的主目录冲突?

1 个答案:

答案 0 :(得分:0)

Socket.IO是一种专用协议,而不是普通的网络库。如果您要在服务器上使用Socket.IO,则需要在iOS设备上使用Socket.IO客户端,例如:https://github.com/socketio/socket.io-client-swift