首页 > 解决方案 > 使用 Socket.io 设置 Python 脚本以更改 Three.js 动画

问题描述

我用 Three.js 制作了一个小型环境,它可以加载 3D 模型并能够随机更改所述模型的动画。现在我需要将这个环境与一个 Python 脚本连接起来,该脚本将更改在我的 JavaScript 中调用某个函数的动画,为此我正在尝试使用Socket.io创建一个套接字并尝试在我的 JS 中调用这个函数代码。可悲的是,我无法连接这两个程序,因为我不确定如何执行我的计划。

Python 服务器代码(在 connect 内部发出跳转只是为了测试它是否工作,它不是。)

from aiohttp import web
import socketio

sio = socketio.AsyncServer(async_mode='aiohttp')
app = web.Application()
sio.attach(app)

@sio.on('connect')
def connect(sid, environ):
    print("connect ", sid)
    print("Sending command to js")
    sio.emit('jump', data)

if __name__ == '__main__':
    web.run_app(app)

Javascript 代码(删除了大部分函数的内部结构以使其更短)

(function main() {

init(); 

function init() {

    scene = new THREE.Scene();

    ...

    var socket = io.connect('http://0.0.0.0:8080');
}

function update() {
    renderer.render(scene, camera);
    requestAnimationFrame(update);
  }

  update();

  socket.on('jump', function(data) {
    playAnimation();
});

  function playAnimation() {
    ...
  }


})(); 

我的问题是:

谢谢你。

标签: javascriptpythonsocketssocket.io

解决方案


推荐阅读