从 Flask 更改为 NodeJS 或 UDP 或在 Flask 中使用更多线程来改善通信?

Change from Flask to NodeJS or UDP or use more threads in Flask to improve communication?

我正在创建一个简单的 android 应用程序来控制本地网络中桌面的鼠标。

我已经弄清楚如何创建预期的行为,有时效果很好,但有时速度很慢。

该应用使用 Volley 和 JsonObjectRequest 与服务器通信。 服务器正在使用 Flask 和 HTTP POSTs.

我想改进 5 件事:

  1. 将服务器更改为 NodeJS
  2. 使用UDP协议,因为我不需要确认。
  3. 在 Flask 中使用多个线程
  4. 将 Volley 更改为 OkHttp 或其他 http 库。 (可能截击不是问题,但我可能是错的。)
  5. 从 POST 更改为 GET(听起来很愚蠢)

所以如果问题出在服务器:

  1. 我应该在 Flask 中使用更多线程吗?
  2. 或者在 Flask 中使用 UDP 足以响应 +/- 60 req/sec?
  3. 或者有必要将我的服务器更改为 NodeJS 吗?
  4. 或者要获得 60 r/s 我需要两者,NodeJS 和 UDP?

任何其他替代方案也有效!谢谢

烧瓶代码

from flask import Flask, request
import win32api, win32con
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

@app.route("/mouse", methods=['POST'])
def mouse():        
    x, y = win32api.GetCursorPos()
    win32api.SetCursorPos( (x + request.json['x'], y + request.json['y'] ))

if __name__ == '__main__':
    app.run(host='0.0.0.0')

Android中,在检测到视图中的触摸和移动后,将deltaX和deltaY和POST作为x和y获取到/mouse。我还限制了每秒最大请求数,但效果不佳。

MouseController.MOUSE_FRAME = 30;
private View.OnTouchListener onMouseTouch = new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {

        if(motionEvent.getActionMasked() == MotionEvent.ACTION_DOWN){
            mouseX = motionEvent.getX();
            mouseY = motionEvent.getY();
        }


        if(motionEvent.getActionMasked() == MotionEvent.ACTION_MOVE) {
            Long now = Calendar.getInstance().getTimeInMillis();
            if( now - lastTime > (1000/MouseController.MOUSE_FRAME)){
                float newX = motionEvent.getX();
                float newY = motionEvent.getY();
                float deltaX = newX - mouseX;
                float deltaY = newY - mouseY;
                mouseX = newX;
                mouseY = newY;

                mouseController.move(deltaX, deltaY);
                lastTime = now;
            }
        }

        return true;
    }
};

为了解决问题我改成了UDP通信

基于这两个教程:

Android UDP:http://www.helloandroid.com/tutorials/simple-udp-communication-example

Python UDP:https://wiki.python.org/moin/UdpCommunication

问题已解决,现在移动流畅。是的,就是这么简单。