Chcę mieć trasę na moim serwerze węzłów sailsjsto jest połączenie przez gniazdo. Chcę następnie wysłać żądanie odpoczynku na tę trasę spoza aplikacji, aby gniazdo usłyszyło zdarzenie i zaktualizowało interfejs użytkownika mojej aplikacji.
Jak dotąd wszystko, co widziałem w Internecie, to posiadanie samego serwera WebSocket. Czy nie ma sposobu na zintegrowanie go z istniejącym serwerem?
Jestem tu trochę zagubiony. Czy ktoś może skierować mnie do samouczka, który to robi?
Pytanie: Jak wysłać żądanie odpoczynku na mój serwer spoza aplikacji i pozwolić serwerowi zaktualizować interfejs użytkownika mojej aplikacji?
Jeśli potrzebujesz tutaj większej przejrzystości, daj mi znać.
Odpowiedzi:
1 dla odpowiedzi № 1Myślę, że musisz użyć WebSockets. Interfejs użytkownika nie wie nic o serwerze, chyba że zostanie o tym powiadomiony. Jedynym innym sposobem na uruchomienie go bez WebSockets jest długie żądanie odpytywania AJAX, ale to rozwiązanie działałoby w ograniczonych przypadkach użycia.
Dodanie serwera Socket.io do serwera węzłów jest dość trywialne, spróbowałbym.
0 dla odpowiedzi nr 2
Użyj socket.io, można go dodać do każdego serwera Node.js. Na przykład:
var app = require("http").createServer(handler)
, io = require("socket.io").listen(app)
, fs = require("fs");
app.listen( 80 );
function handler (req, res) {
fs.readFile(__dirname + "/index.html",
function (err, data) {
if (err) {
res.writeHead(500);
return res.end("Error loading index.html");
}
res.writeHead(200, {"Content-Type": "text/html"});
res.end(data);
});
}
io.set("log level", 1);
io.sockets.on("connection", function (socket) {
socket.emit("news", { hello: "world" });
socket.on("my other event", function (data) {
console.log(data);
});
});
Możesz użyć dowolnego zdarzenia gniazda tutaj.