與此問題相關Browser with JavaScript TCP Client我問我是否可以從瀏覽器連接到tcp服務器。我發現它不會工作,所以我要求另一個解決方案。 '0101'爲我提供了兩臺服務器。一個連接到C++應用程序的tcp服務器和一個從瀏覽器接收數據的websockets服務器。我原來建立了它們中的每一個,但我不知道如何連接它們,因此我可以從C++應用程序中的瀏覽器接收數據。Node.js websocket-server和tcp-server連接
這裏是WebSockets的服務器:
var ClientListe = {};
// Anzahl der Verbundenen Clients
var ClientAnzahl=0;
// Websocket-Server
var WebSocketServer = require('ws').Server
var wss = new WebSocketServer({host: '127.0.0.1',port: 80});
wss.on('connection', function(ws)
{
// Client-Anzahl hochzählen
ClientAnzahl++;
// Client-Verbindung mit in die Client-Liste Aufnehmen
ws['AUTH'] = ClientAnzahl;
ClientListe[ws['AUTH']] = ws;
// Ausgabe
console.log('client '+ClientAnzahl+' verbunden...');
ws.on('message', function(message)
{
console.log('von Client empfangen: ' + message);
for(client in ClientListe)
{
ClientListe[client].send('von Server empfangen: ' + message);
}
});
ws.on('close', function()
{
// Client aus der ClientListe Löschen
delete ClientListe[ws['AUTH']];
// Nachricht der Trennung an die Console ausgeben
console.log('Client '+ ws['AUTH'] +' getrennt.');
});
});
,這裏是TCP服務器:
// Load the TCP Library
net = require('net');
// Keep track of the chat clients
var clients = [];
// Start a TCP Server
net.createServer(function (socket) {
// Identify this client
socket.name = socket.remoteAddress + ":" + socket.remotePort;
// Put this new client in the list
clients.push(socket);
// Send a nice welcome message and announce
socket.write("Welcome " + socket.name + "\n");
broadcast(socket.name + " joined the server\n", socket);
// Handle incoming messages from clients.
socket.on('data', function (data) {
broadcast(socket.name + " message: " + data, socket);
});
// Remove the client from the list when it leaves
socket.on('end', function() {
clients.splice(clients.indexOf(socket), 1);
broadcast(socket.name + " left the server.\n");
});
// Send a message to all clients
function broadcast(message, sender) {
clients.forEach(function (client) {
// Don't want to send it to sender
if (client === sender) return;
client.write(message);
});
// Log it to the server output too
process.stdout.write(message)
}
}).listen(80);
// Put a friendly message on the terminal of the server.
console.log("TCP Server running at localhost port 80\n");
兩者都複製了互聯網的測試有些情況下
謝謝你的回覆。這兩臺服務器如何通信?例如,tcp服務器接收數據並將其傳輸到websocketserver並將其發送給客戶端? – user3705887
就像TCP服務器第一次收到一樣,然後作爲客戶端發送到websocketserver。 – user3705887
您的所有客戶都將在陣列中。如果您將收到一些數據,例如使用TCP連接,您可以將這些數據作爲'wsClients [clientID] .send(someData);' – 0101