我对套接字的使用比较新,我想让我简单的P5js草图通过套接字与我的Python服务器通信 .

我已经学到了一些基础知识,这里是我能够获得的代码:

Python服务器代码(python)

这是我的python服务器的代码:

#!/usr/bin/env python3

    import socket, sys

    mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    try:
        mysock.bind( ('127.0.0.1',3000) )
    except socket.error:
        print("Failed to bind")
        sys.exit()

    mysock.listen(5)

    print( "wait for incoming connection")

    conn, addr = mysock.accept()
    print( conn )
    print( addr )

    while True:
        data = conn.recv(2048)
        if not data: break
        print("received data: ")
        print(data)

    conn.close()
    mysock.close()

P5js客户端代码(客户端)

这是我的 sketch.js 文件上的代码:

var socket;

    function setup()
    {
        createCanvas( 720, 400 );
        noStroke();
        fill(255, 0, 0)
        frameRate(30);
        socket = io.connect('http://127.0.0.1:3000');
    }

    function draw()
    {
        background(100, 255, 200);
    }

    function mouseDragged() {
        console.log("Sending: " + mouseX + "," + mouseY);

        var data = {
            x: mouseX,
            y: mouseY
        }

        socket.emit('mouse', data);
    }

我正在启动服务器,然后使用 http-server 命令提供P5js草图 .

当我移动到浏览器并在地址 http://127.0.0.1:8080 加载网页时,python服务器正在收到一些消息

wait for incoming connection
    
    ('127.0.0.1', 35432)
    received data: 
    b'GET /socket.io/?EIO=3&transport=polling&t=MK01AKs HTTP/1.1\r\nHost: 127.0.0.1:3000\r\nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0\r\nAccept: */*\r\nAccept-Language: en-GB,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\nReferer: http://127.0.0.1:8080/\r\nOrigin: http://127.0.0.1:8080\r\nCookie: io=7dpapD9jXEGDhpctAAAA; owa_v=cdh%3D%3E83a0a813%7C%7C%7Cvid%3D%3E1517666775149276089%7C%7C%7Cfsts%3D%3E1517666775%7C%7C%7Cdsfs%3D%3E1%7C%7C%7Cnps%3D%3E2; owa_s=cdh%3D%3E83a0a813%7C%7C%7Clast_req%3D%3E1517768497%7C%7C%7Csid%3D%3E1517767571525272799%7C%7C%7Cdsps%3D%3E1%7C%7C%7Creferer%3D%3E%28none%29%7C%7C%7Cmedium%3D%3Edirect%7C%7C%7Csource%3D%3E%28none%29%7C%7C%7Csearch_terms%3D%3E%28none%29\r\nDNT: 1\r\nConnection: keep-alive\r\n\r\n'

即使浏览器控制台向我显示了很多“发送:鼠标 - 坐标”消息,我拖动鼠标也没有任何内容 .

我究竟做错了什么?

提前感谢您的帮助!任何支持将不胜感激 .