我正在Vue中制作游戏,我希望玩家能够远程一起玩。我只是从套接字开始,我有点困惑。
我从“ vue create” CLI开始。这是我的main.js中的代码:
import Vue from "vue";
import App from "./App.vue";
import VueSocketio from "vue-socket.io";
Vue.use(VueSocketio, "http://localhost:8080/");
Vue.config.productionTip = false;
new Vue({
render: h => h(App),
}).$mount("#app");
然后在我的App.vue中(尝试将其缩小到最低限度):
<template>
<div id="app">
<input type="button" value="button" @click="clickButton()">
</div>
</template>
<script>
export default {
name: "app",
components: {
Grid,
ParamsForm,
Timer
},
data() {
[...]
},
methods: {
clickButton(data) {
console.log(data);
this.$socket.emit("customEmit", data);
}
},
sockets: {
connect: function() {
console.log("socket connected");
},
customEmit: function(val) {
console.log("this method was fired by the socket server.");
}
},
}
</script>
所以我主要有3或4个问题。
在这种情况下,由于我使用的是vue-socket.io,因此我是否需要在此之上安装并使用Express和/或常规的socket.io,或者vue-socket.io应该是覆盖全部吗?
按现状,我从没看到消息“ socket connected”,控制台每隔3秒钟左右生成一次消息POST http://localhost:8080/socket.io/?EIO=3&transport=polling&t=MkmvuSb 404 (Not Found)
。我想念什么?
单击该按钮将触发console.log,但不会触发this。$ socket.emit()。再说一次,我错过了哪一步?
当我使用vue-socket时,是否可以使用命令 npm run serve 继续开发,还是绝对需要使用“ node server.js”或像这样吗?
我在那里找到的所有教程似乎都只解决了一个非常特定的用例,而他们对所需的内容并不一致。
非常感谢您的帮助!