将数据从服务器端Nodejs发送到客户端(不在套接字上)

时间:2018-10-07 11:34:39

标签: javascript node.js npm socket.io

我正在寻找一种方法,可以从套接字(例如example.com:8000)向我的Web服务器发送数据,而不是在套接字example.com/index.php.上,我一直在寻找代码,但是我没有找到了任何答案。如果您编写示例代码,是否可以显示var x,即从Nodejs到客户端的=等于2?

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您使用NodeJS作为服务器,那么我建议使用此软件包: npm ws,这是服务器端的超轻Web套接字。

现在,以您的示例为例:

服务器端:

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws) {
  ws.on('message', function incoming(message) {
    console.log('received: %s', message);
  });

  ws.send('something');
});

客户端

const socket = new WebSocket('ws://127.0.0.1:8080/');
    socket.onopen = () => {
        console.log("I'm open!");
        socket.send('Sending from client');
    }
    socket.onmessage = (message) => {
        console.log('Received: ', message);
        console.log('Received Data: ', message.data);
    }
  • 您会在服务器上看到一个console.log,上面写着“已收到:从客户端发送”
  • 您将在客户端上看到两个console.log:

    Received: MessageEvent {isTrusted: true, data: "something", origin: "ws://127.0.0.1:8080", lastEventId: "", source: null, …}

    AND

    Received Data: something

收到的数据“某物” 是从ws.send('something');上的服务器发出的,您可以将其更改为JSON类型的字符串,然后使用以下命令在客户端上解析message.data JSON.parse(message.data)

注意::在客户端上,WebSocket()是本机API,因此与NodeJS服务器不同,您不需要导入任何内容,而需要NPM软件包。

您实际上可以通过开发人员控制台测试客户端。