#javascript #python #java #socket.io #flask-socketio
Вопрос:
В настоящее время я запускаю сервер Python Flask-SocketIO, который идеально подключается к моему клиенту JavaScript. Я использую приложение для чата на примере Android socketio для написания кода Android, сервер Python, к которому он не подключается.
Как я могу подключиться к серверу Ptyhon Flask-SocketIO с Android?
Код для Android:
public class MainActivity extends AppCompatActivity { private Socket mSocket; { try { mSocket = IO.socket("http://127.0.0.1:420"); } catch (URISyntaxException e) { System.out.println(e); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSocket.connect(); String mUsername = "FatCat"; String message = "Hallo"; mSocket.emit("new_message", "{"username": "" mUsername "", "message":"" message ""}"); } @Override public void onDestroy() { super.onDestroy(); mSocket.disconnect(); } }
Код JavaScript:
lt;script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.1/socket.io.js" integrity="sha512-q/dWJ3kcmjBLU4Qc47E4A9kTB4m3wuTY7vkFJDTZKjTs8jhyGQnaUrxa0Ytd0ssMZhbNua9hE E7Qv1j DyZwA==" crossorigin="anonymous"gt;lt;/scriptgt; lt;script type="text/javascript" charset="utf-8"gt; var socket = io("http://127.0.0.1:420"); socket.on('connect', function() { socket.emit('new_message', {username: "FatCat", message:"gg"}); }); lt;/scriptgt;
Код на Python:
app = Flask(__name__) app.config["SECRET_KEY"] = "key" socketio = SocketIO(app) @app.route("/") def index(): return render_template("x.html") @socketio.event def connect(): print("connected") @socketio.event def new_message(data): print({"username": data["username"], "message": data["message"]}) socketio.emit("new_message", {"username": data["username"], "message": data["message"]}) @socketio.on("new_message") def new__message(data): print("on") print({"username": data["username"], "message": data["message"]}) socketio.emit("new_message", {"username": data["username"], "message": data["message"]}) @socketio.event def disconnect(): print("disconnected") if __name__ == "__main__": socketio.run(app, port=420,debug=True)
Ошибки нет, но она ничего не отправляет на сервер.
Комментарии:
1. Опорный разъем. Реализация ввода-вывода-это реализация JavaScript, поэтому я проверяю это. Используемый вами клиент Android может быть несовместим с версией Socket. Ввод-вывод, который вы используете на сервере. Проверьте журналы сервера, чтобы узнать, есть ли какие-либо подсказки.
2. Хорошо, я сделаю это!