Ich habe eine einfache App auf Docker Container ausgeführt. Dieser Container wird nicht ständig ausgeführt. Es beginnt, macht bestimmte Arbeit und stoppt. Wenn es soweit ist, möchte ich es über socket.io mit einem Server verbinden. Ich habe versucht, socket.io-client
zu verwenden, aber immer noch nicht in der Lage, es funktioniert. Das ist mein App-Code:Wie verbindet man Knoten-App mit dem Server über socket.io?
var docker_host_ip = process.env.DOCKER_HOST_IP;
var address = 'http://' + docker_host_ip +":" + port;
console.log("console : " + address);
var socket = require('socket.io-client')(address);
socket.on("disconnect", function(){
console.log("disconnected ");
});
socket.on("connect_failed", function(err){
console.log("err : " + err);
});
socket.on('connect', function(){
console.log("connected");
});
socket.on('news', function(data){
console.log("data : " + data);
socket.emit("news", {docker: "This is docker"});
});
socket.emit("news", {docker: "This is docker"});
socket.on('error', function (err) {
console.log(err);
});
Ich habe diese https://github.com/socketio/socket.io-client verwendet.
var port = 4000;
app.use(express.static('.'))
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on('connection', function(socket){
socket.emit("news", {"hello": "hello"});
socket.on("news", function(data){
console.log("new " + data);
io.sockets.emit("news", data);
});
socket.on('disconnect', function() {
console.log('Got disconnect!');
});
});
app.get("/", function(res, req){
req.sendFile(path.join('/index.html'));
});
http.listen(port, function(){
console.log('listening on *' + port);
});
Meine App zeigt keinen Fehler, aber keine Nachricht wird gesendet. Mein Server funktioniert korrekt über den Browser (mit socket.io). Kann mir bitte jemand sagen, was los ist?
Was ist der Unterschied zwischen dem ersten Teil und dem zweiten Teil ?? –
Der Client gibt ein Ereignis "connect_error" (https://github.com/socketio/socket.io-client#events) aus, wenn Verbindungsfehler auftreten, auf die Sie nicht achten. – robertklep
Ich versuche Fehler zu machen. Aber immer noch kein Fehler, keine Reaktion. – dmx