我想在客户端(在浏览器中)使用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中的网络模块?
答案 0 :(得分:7)
这是因为net
允许您访问原始TCP套接字 - 哪些浏览器无法从JavaScript端执行。在写入这样的API(允许任意tcp流量)之前,net
不可能被移植到客户端。
如果您想将tcp数据从客户端发送到服务器,最好的办法是使用socket.io module或ws的网络套接字。
如果您希望客户直接沟通,最好的选择是研究WebRTC