如何使用Node.js的net模块与browserify?

7
我想在客户端(浏览器)使用Node.js的net模块:
var net = require('net');

所以我查了一下如何将Node.js模块传递到客户端,browserify似乎是答案。我尝试使用jQuery,它像魔法一样奏效。 但由于某种原因,net模块不想工作。如果我写require('jquery'),那么就可以正常工作,但如果我写require('net'),它就无法工作,这意味着我的捆绑.js文件是空的。
我试图寻找其他东西,但我找到的唯一一件事是Github上的net-browserify。使用它,至少我的bundle.js文件是有内容的,但是使用它会产生JavaScript错误(这与connect函数有关)。
这是我的代码,在服务器端运行得很好:
var net = require('net-browserify');
//or var net = require('net');

var client = new net.Socket();
client.connect({port:25003}, function() {
    console.log('Connected');
    client.write('Hello, server! Love, Client.');
});

client.on('data', function(data) {
    console.log('Received: ' + data);
    client.destroy(); // kill client after server's response
});

client.on('close', function() {
    console.log('Connection closed');
});

我假设net-browserify让你使用特定的connect函数,但我不知道是哪个。

我如何在客户端使用Node.js中的net模块?

1个回答

8
这是因为net提供了对原始TCP套接字的访问-这是浏览器无法从JavaScript端执行的。除非编写了此类API(允许任意tcp流量),否则net不可能被移植到客户端。如果您想从客户端向服务器发送tcp数据,则最好使用使用socket.io模块或ws模块的web sockets。如果您希望客户端直接通信,则最好研究WebRTC。

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