2017-05-26 5 views
1

Fondamentalement, j'essaie d'afficher les données entrantes sur le port du serveur vers une page web HTML. Ce code affiche les messages entrants plus qui a rejoint ou quitté mais sur la fenêtre de la console et j'essaie d'afficher ces messages sur la page Web. S'il vous plaît aider.Merci.Comment acheminer les messages entrants sur le serveur vers une page html dans Socket.io

côté serveur code-

// 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 \n", socket); 

    // Handle incoming messages from clients. 
    socket.on('data', function (data) { 
    broadcast(socket.name + "> " + 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 chat.\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(3000); 

    // Put a friendly message on the terminal of the server. 
console.log("server running at port 3000\n"); 

Répondre

0

Le code que vous avez fourni n'est pas socket.io, quelque chose comme son tcp le chat.

Il suffit de suivre these instructions et vous comprendrez

MISE À JOUR

Objectif: envoyer des données par tcp-ip et obtenir par http en temps réel.

Pour ce faire, nous devons passer par plusieurs étapes:

  • créer serveur tcp (vous l'avez déjà)
  • créer socket.io serveur (si vous n'avez pas besoin en temps réel, si rafraîchir la page est ok pour obtenir de nouvelles données - serveur habituel http est enought)
  • créer de la mémoire partagée entre deux serveurs (ou le stockage de base de données en option)

Je vais écrire pseudo-js code, juste pour vous de comprendre comment yo u peut atteindre:

const app = require('express')() 
const MESSAGES = [] 
app.get('/', (req, res) => { 
    res.send(MESSAGES) 
}) 
app.listen(3000,()=> console.log('server started')) 

// and your code.. I won't repeat just a sample 
// Handle incoming messages from clients. 
socket.on('data', function (data) { 
    MESSAGES.push(data) 
    broadcast(socket.name + "> " + data, socket) 
}) 
+0

Salut, merci pour vos reply.I un dispositif qui utilise le protocole TCP-IP pour communiquer avec le dispositif serveur.Le envoie ses données à IP et le port donné et mon code côté serveur ci-dessus aussi montre les données reçues dans la fenêtre de la console, je trouve difficile de l'afficher sur la page index.html.J'ai essayé de nombreux exemples, mais tous les messages d'affichage seulement si passé par le navigateur –

+0

Ok, vous voulez utiliser cet appareil pour voir dans le web? – Lazyexpert

+0

Oui, je veux que cet appareil à voir dans le web comme cette page Web est utilisé pour surveiller les données provenant de l'appareil. Est-ce possible? –