Node.js服务器-客户端通信

时间:2018-09-30 18:39:08

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

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

1 个答案:

答案 0 :(得分:0)

您必须使用以下命令安装名为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上可用,因此与众不同。

我希望这对您有帮助!