server.jssocket.io Daten vom Server zum Client
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
app.use(express.static(__dirname + '/public'));
io.on('connection', function(client) {
console.log('Client connected...');
client.on('join', function(data) {
console.log(data);
io.emit('messages', 'Hello');
});
});
index.html
<script>
var socket = io.connect('http://localhost:7777');
socket.on('connect', function(data) {
socket.emit('join', 'Hello World from client');
});
socket.on('messages', function(data) {
alert(data);
});
</script>
Ich habe versucht, sehr einfach von Socket.io zu implementieren.
Daten senden von Client zu Server ist jedoch verfügbar, aber von Server zu Client funktioniert nicht.
Im Befehl running server.js wird 'Hello World from client' gedruckt. Das Benachrichtigungsfenster funktioniert jedoch nicht im Webbrowser (Ich habe auch versucht, console.log zu erstellen).
Wie löst man das?
Editted
I server.js Codes in der app.get ('/', function (req, res)) gesetzt haben {...} Dann funktioniert es nicht. Warum funktioniert es nicht in app.get?
socket.io-Code gehört nicht zu einer bestimmten Route. Wenn Sie erklären können, was Sie mit dem 'app.get()' Teil Ihrer Frage versuchen und Sie uns zeigen können, welchen Code Sie in 'app.get()' einfügen, könnten wir Ihnen vielleicht einen Vorschlag machen. Aber gerade jetzt ist dieser Teil Ihrer Frage sehr vage und unklar. – jfriend00
Vielen Dank für Ihre Antwort. Ich versuche, Daten aus elasticsearch mit node.js abzurufen und an den Anfang zu senden. Ich fand, dass mehrere Lösungen, um damit umzugehen, ejs oder Mops verwenden. Ich habe versucht, Vorlage mit Mops und Vue.js zu verwenden, aber was ich tun möchte (mit Google Map API kombinieren) funktioniert nicht gut. Deshalb wähle ich socket.io. Außerdem dachte ich, es wäre besser, Daten von Server zu Front zu senden, wenn ich die spezifische URL wie app.get eingeben ('/ test', ...). – coffeedjason