我有一个设置,其中我将带有socket.io的vue-native客户端应用程序(react-native的vue.js包装器)发送消息到node.js服务器。从node.js服务器Im将我的OSC消息转发到接收OSC消息的“另一个程序”。
这很好,但是现在我想反过来。
我已使用下面的代码从“另一个应用程序”成功从我的node.js服务器接收了OSC消息,但是我无法弄清楚如何将其转发到我的vue-native应用程序。
VUE-NATIVE(基本数据):
<script>
import io from "socket.io-client";
export default {
components: {
io
},
data: function() {
return {
object: {
oscAdress: "TheOscAdress",
msg: ""
},
adress: "http://192.168.43.54:3000"
};
},
mounted() {
this.socket = io(this.adress);
console.log("started");
},
methods: {
sendMessage: function() {
this.socket.emit("chat message", this.object);
},
NODE.JS
const express = require("express");
const app = express();
const server = require("http").createServer(app);
const io = require("socket.io").listen(server);
const port = 3000;
// OSC
const { Client } = require('node-osc');
this.client = new Client('127.0.0.1', 3333);
const { Server } = require('node-osc/lib');
var oscServer = new Server(10000, '127.0.0.1');
// SOCKET IO
io.on("connection", socket => {
console.log("a user connected :D");
// RECEIVING FROM APP WITH SOCKET.IO
socket.on("chat message", msg => {
console.log(msg.msg);
// SENDING TO OSC
this.client.send('/'+msg.oscAdress, parseInt(msg.msg, 10));
});
});
// RECEIVING FROM OSC
oscServer.on('message', function (msg) {
console.log(msg);
});
server.listen(port, () => console.log("server running on port:" + port));
关于如何将OSC消息转发到我的应用程序的任何想法?
一种方法是在我的node.js中使用此方法,但是我不知道如何在vue中接收它,所以我不确定它是否有效:
// RECEIVING FROM OSC
oscServer.on('message', function (msg) {
console.log(msg);
// SENDING TO VUE-NATIVE??
io.emit("chat message to app", msg);
});
更新 我通过在挂载中添加以下接收功能来接收vue中的消息 但这不能正常工作,因为我想要一直更新Vue的东西。不仅在启动时。
mounted() {
this.socket = io(this.adress);
console.log("started");
// receive message from server
this.socket.on("chat message to app", (data) => {
console.log( data);
})
},
此刻,我的node.js应用程序一直在侦听OSC消息,并且一直在更新。 vue-native应用程序也是如此。
当它实际上接收到某种东西或某些OSC值实际上正在变化时,是否只能对其进行更新?答案 0 :(得分:0)
我几乎解决了自己的问题。请参阅上面的更新。问题是虽然我使用已挂载的功能。我想要一直更新Vue的东西。不仅在启动时。
此刻我的node.js应用程序一直在侦听OSC消息并一直在更新,是否只有在它实际接收到某些东西或某些OSC值实际上正在变化时才对其进行更新?