据说:
文件“C:\Users\w\AppData\Local\Programs\Python\Python37\lib\site-packages ngineio\packet.py”,第 65 行,解码中 self.packet_type = int(encoded_packet[0]) ValueError:以 10 为基数的 int() 的文字无效:'h'
似乎python正在尝试将第一个字符的消息“hello”解码为消息的长度。我不知道。
from flask import Flask, render_template,jsonify
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO()
socketio.init_app(app, cors_allowed_origins='*')
@socketio.on('connect')
def index():
return render_template('index.html')
@socketio.on('my_event')
def handle_my_custom_event(json):
print('received json: ' + str(json))
socketio.emit('my_response', json)
@socketio.on('connect')
def test_connect():
print('Client connected')
@socketio.on('disconnect')
def disconnect_msg():
print('client disconnected.')
@socketio.on('my_event')
def mtest_message(message):
print(message)
emit('my_response',
{'data': message['data'], 'count': 1})
@socketio.on('message')
def handle_message(data):
print('received message: ' + data)
if __name__ == '__main__':
socketio.run(app,host="0.0.0.0",port=8081,debug=True,allow_unsafe_werkzeug=True)
还有我的邮递员记录:
感谢米格尔·格林伯格 我对 websocket 和 socketio 感到困惑,这是正确的代码:
import asyncio
import websockets
async def echo(websocket, path):
# fetch msg
async for message in websocket:
print("got a message:{}".format(message))
await websocket.send(message)
async def main():
# start a websocket server
async with websockets.serve(echo, "localhost", 5000):
await asyncio.Future() # run forever
print("server start")
asyncio.run(main())