如何将 Node.js 中的 net 模块与 browserify 一起使用?
Posted
技术标签:
【中文标题】如何将 Node.js 中的 net 模块与 browserify 一起使用?【英文标题】:How to use the net module from Node.js with browserify? 【发布时间】:2015-08-30 03:02:27 【问题描述】:我想在客户端(在浏览器中)使用来自 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 的 net 模块?
【问题讨论】:
【参考方案1】:这是因为net
让您可以访问原始 TCP 套接字——浏览器在 JavaScript 端根本无法做到这一点。在编写这样的 API(允许任意 tcp 流量)之前,net
不可能被移植到客户端。
如果您想将 tcp 数据从客户端发送到服务器,最好的选择是使用使用 socket.io module 或 ws 的 Web 套接字。
如果您希望客户直接交流,最好的办法是研究 WebRTC
【讨论】:
以上是关于如何将 Node.js 中的 net 模块与 browserify 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 .then() 中的值从 Node.js 模块返回到服务器文件?