Java python flask socketio TypeError:需要类似字节的对象,而不是';str';
我开始使用Socketio,但我遇到了一个问题。我无法向我的flask会话发送简单消息。我的Java代码:Java python flask socketio TypeError:需要类似字节的对象,而不是';str';,java,android,python,flask,flask-socketio,Java,Android,Python,Flask,Flask Socketio,我开始使用Socketio,但我遇到了一个问题。我无法向我的flask会话发送简单消息。我的Java代码: import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import org.json.JSONException; import org.json.JSONObject; import ja
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import org.json.JSONException;
import org.json.JSONObject;
import java.net.URISyntaxException;
import io.socket.client.IO;
import io.socket.client.Socket;
public class MainActivity extends AppCompatActivity {
Socket socket;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
socket = IO.socket("http://192.168.8.101:8080/send");
} catch (URISyntaxException e) {
}
}
public void TestButton(View v){
Log.d("send","before send");
JSONObject obj = new JSONObject();
try {
obj.put("message", "hi");
obj.put("binary", new byte[42]);
socket.emit("mes", obj);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
我的Python代码:
from flask import Flask
from flask_socketio import SocketIO
app = Flask(__name__)
socketio = SocketIO(app)
@socketio.on("mes", namespace="/send")
def chat_message(message):
print("message:")
if __name__ == "__main__":
print("start")
socketio.run(app, host="0.0.0.0", port=8080)
错误:
TypeError: a bytes-like object is required, not 'str' <Greenlet at 0x24118773178: _handle_and_close_when_done(<bound method WSGIServer.handle of <WSGIServer at , <bound method StreamServer.do_close of <WSGIServer, (<gevent._socket3.socket [closed] object, fd=-1, )> failed with TypeError
TypeError:bytes-like-object是必需的,而不是'str'我认为您可以将python3与gevent和gevent-websocket插件一起使用。
gevent websocket还不支持Python 3
您必须在此处选择以下选项:
卸载gevent和gevent websocket并使用eventlet
修复第236行的代码geventwebsocket/handler.py
if b'101' not in self.status:
我希望我能帮助您。当您发布Python错误时,请包含完整的堆栈跟踪,因为它提供了错误的附加信息和上下文。