我正在构建一个从套接字接收数据的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
吗?但是,如果没有指定命名空间,默认命名空间为'/'
,它是否会与我的主目录冲突?
答案 0 :(得分:0)
Socket.IO是一种专用协议,而不是普通的网络库。如果您要在服务器上使用Socket.IO,则需要在iOS设备上使用Socket.IO客户端,例如:https://github.com/socketio/socket.io-client-swift。