需要帮助了解vue-socket.io;还需要express和socket.io吗?

时间:2019-07-02 04:28:52

标签: sockets vue.js

我正在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个问题。

  1. 在这种情况下,由于我使用的是vue-socket.io,因此我是否需要在此之上安装并使用Express和/或常规的socket.io,或者vue-socket.io应该是覆盖全部吗?

  2. 按现状,我从没看到消息“ socket connected”,控制台每隔3秒钟左右生成一次消息POST http://localhost:8080/socket.io/?EIO=3&transport=polling&t=MkmvuSb 404 (Not Found)。我想念什么?

  3. 单击该按钮将触发console.log,但不会触发this。$ socket.emit()。再说一次,我错过了哪一步?

  4. 当我使用vue-socket时,是否可以使用命令 npm run serve 继续开发,还是绝对需要使用“ node server.js”或像这样吗?

我在那里找到的所有教程似乎都只解决了一个非常特定的用例,而他们对所需的内容并不一致。

非常感谢您的帮助!

0 个答案:

没有答案