【问题标题】:Node.js Server-Client communicationNode.js 服务器-客户端通信
【发布时间】:2019-03-05 23:08:54
【问题描述】:

我有一个不和谐的机器人,我想为该机器人创建一个网站。例如,我想获取不和谐服务器成员并以标题或其他内容打印到网站。或者,如果单击页面上的按钮,则机器人会向频道发送消息。你能告诉我我该怎么做吗?

【问题讨论】:

    标签: javascript node.js server client discord.js


    【解决方案1】:

    您必须使用以下命令安装一个名为 Express 的节点包: npm install --save express 。你必须这样做:

        var express = require('express');
        var app = express();
        var server = app.listen(3000);
        app.use(express.static('public'));//name of the website folder that has the html and js files.
    

    这将在 localhost:3000 上托管一个服务器。然后,当像您说的那样单击按钮时,您将需要在节点 js 服务器上运行代码。为此,您需要使用套接字。 您需要另一个名为 socket.io 的节点包。所以只需运行 npm install --save socket.io

    然后写下来

        var socket = require('socket.io')
        var io = socket(server);
    
        io.sockets.on("connection", function(Socket){
          console.log("new connection " + Socket.id);
          Socket.on("sendMessage", function(data){
            //send a discord message.
          });
        });
    

    现在到客户端了。

    在 HTML 文件中你需要引用套接字库。

        <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.1/socket.io.dev.js"></script>
    

    在js文件中你需要这样写。

        var socket;
        socket = io.connect("http://localhost:3000");
    
        var button = document.getElementById('button');
        button.addEventListener('click', function(){
          var data = {};
          socket.emit("sendMessage", data);
        });
    

    这将向服务器发送一个请求,当服务器收到它时,它将运行您输入的代码:

      Socket.on("sendMessage")
    

    网站网址位于 localhost:3000。并且它仅在您的 PC 上可用,将其公开是不同的。

    希望对你有所帮助!

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 2011-09-05
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多