如何在浏览器上运行Node.js客户端

9

大家好

我对node.js非常陌生,现在想使用node.js制作一个tcp服务器和客户端。目前进展顺利,服务器脚本可以正常运行,客户端脚本也可以正常运行。

但是问题是我只能通过在终端中输入命令(node client.js)来运行客户端。
我想在浏览器中运行它,这样就可以将从服务器接收到的数据显示在浏览器上了。

请问我该怎么做呢?

求助。

Kawin.

以下是客户端代码。(我记不得最初创建这个脚本的人是谁了。我从某个地方复制并粘贴了它,但忘记了书签链接。很抱歉没有给这个脚本的所有者留下信用。)

var net = require('net');

var HOST = '192.168.0.88';
var PORT = 8888;

var client = new net.Socket();
client.connect(PORT, HOST, function() {

    console.log('CONNECTED TO: ' + HOST + ':' + PORT);
    // Write a message to the socket as soon as the client is connected, the   server will receive it as message from the client 
    client.write('B2\r\n');
});

// Add a 'data' event handler for the client socket
// data is what the server sent to this socket
client.on('data', function(data) {
    console.log('DATA: ' + data);
    // Close the client socket completely
    client.destroy();
});

// Add a 'close' event handler for the client socket
client.on('close', function() {
    console.log('Connection closed');
}); 

谢谢你。

感谢您。


1
“我该怎么做?” 你不能。Node.js和浏览器是两个不同的环境。如果你使用了一个特定于某个环境的功能(如TCP套接字),那么你不能在其他环境中使用相同的脚本。 - Felix Kling
谢谢。所以我想我可能必须改变我的计划来实现这个。 - Kawin Netvichitpan
3个回答

12

Node.js不是浏览器JavaScript。它有许多部分使用了浏览器上下文中不可用的操作系统功能。如果您想在客户端保持在浏览器中,实现您所需的功能,可以考虑使用WebSocket而不是TCP套接字(例如socket.io,提供服务器和浏览器客户端)。


8

时代在变化。刚刚宣布可能很快就可以在浏览器中使用node.js了。点击链接查看详情:在浏览器中运行Node.js


所以这是可行的,但我不认为Stackblitz实现是开源/可用的 :( - chrismarx

-7

问题是我想在浏览器中运行它,这样我就可以将从服务器接收到的数据显示在浏览器上。

我认为你需要使用 'http' 模块。

var http=require('http');
var server=http.Server(function(req,res) {
    res.end('<p>hello world</p><script>alert("hello world")</script>');
});

server.listen(8080);

所以你可以通过在浏览器中输入URL 'localhost:8080'来从浏览器端获取数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接