2015-06-14 114 views
3

我想用net模塊從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'); 
}); 

我認爲淨browserify可以讓你使用特定的connect功能,但我不知道是哪個。

如何在客戶端使用Node.js中的net模塊?

回答

5

這是因爲net允許您訪問原始TCP套接字 - 哪些瀏覽器根本無法從JavaScript端完成。 net不可能被移植到客戶端,直到寫入這樣的API(允許任意的tcp流量)爲止。

如果你想從客戶端發送到服務器的TCP數據是使用網絡套接字使用socket.io module或ws之一,你最好的選擇。

如果你想讓客戶直接溝通就是看看WebRTC