如何使用Browserify中的Node.js中的net模块?

时间:2015-06-14 15:35:37

标签: node.js browserify

我想在客户端(在浏览器中)使用Node.js中的net模块:

var net = require('net');

所以我查看了如何将Node.js模块发送到客户端,而browserify似乎就是答案。我尝试使用jQuery,它就像一个魅力。 但由于某种原因,net模块不想工作。如果我写require('jquery')它工作正常,但如果我写require('net')它不起作用,这意味着我的捆绑的.js文件是空的。

我试图搜索其他内容,但我发现的唯一内容是net-browserify on Github。有了这个,至少我的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中的网络模块?

1 个答案:

答案 0 :(得分:7)

这是因为net允许您访问原始TCP套接字 - 哪些浏览器无法从JavaScript端执行。在写入这样的API(允许任意tcp流量)之前,net不可能被移植到客户端。

如果您想将tcp数据从客户端发送到服务器,最好的办法是使用socket.io module或ws的网络套接字。

如果您希望客户直接沟通,最好的选择是研究WebRTC