Sto tentando di utilizzare Node.js con Socket.IO per facilitare la messaggistica tra browser e client, dopo the guide.Utilizzo di socket.io con nodejs su un server con apache come proxy inverso
Tuttavia, ho dovuto impostare Node reverse-proxy dietro Apache. Pertanto, anziché example.com:8080 per nodo, sto utilizzando example.com/nodejs/.
Questo sembra causare a Socket.IO di perdere il senso di sé. Ecco il mio nodo app
var io = require('socket.io').listen(8080);
// this has to be here, otherwise the client tries to
// send events to example.com/socket.io instead of example.com/nodejs/socket.io
io.set('resource', '/nodejs/socket.io');
io.sockets.on('connection', function (socket) {
socket.emit('bar', { one: '1'});
socket.on('foo', function(data)
{
console.log(data);
});
});
Ed ecco ciò che il mio file del client sembra
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Socket.IO test</title>
<script src="http://example.com/nodejs/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://example.com/nodejs/');
console.log(socket);
socket.on('bar', function (data)
{
console.log(data);
socket.emit('foo', {bar:'baz'});
});
socket.emit('foo',{bar:'baz'});
</script>
</head>
<body>
<p id="hello">Hello World</p>
</body>
</html>
Il problema qui è il riferimento script http://example.com/nodejs/socket.io/socket.io.js. Non restituisce il contenuto previsto di javasscript - invece restituisce "Welcome to socket.io" come se avessi colpito http://example.com/nodejs/.
Qualche idea su come posso farlo funzionare?
So che questo non è correlato alla domanda in questione (e, per favore, chiamami se dovrei aprire una nuova domanda SO), ma sono curioso di sapere come appare il tuo httpd.conf Apache. Ho impostato il proxy per passare al vero server node.js, tuttavia, non riesco a far funzionare il proxy websockets. Potresti per favore dare un esempio di come stai facendo questo con Apache? – pmalbu
Scusa, ma non posso. Questo progetto è stato fatto in un hackathon più di 2 anni fa e il server che è stato creato non esiste più. –