Ich versuche Node.js mit Socket.IO zu verwenden, Messaging zwischen dem Browser und Client zu erleichtern, nach the guide.mit NodeJS auf einem Server mit Apache als Reverse Proxy verwenden socket.io
Allerdings musste ich Setup Knoten hinter Apache Reverse-Proxy. Statt example.com:8080 für node verwende ich example.com/nodejs/.
Dies scheint Socket.IO zu verursachen Sinn für sich selbst zu verlieren. Hier ist mein Knoten 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);
});
});
Und hier ist es, was meine Client-Datei
<!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>
Das Problem hier ist das Skript Bezug auf http://example.com/nodejs/socket.io/socket.io.js wie
aussieht. Es gibt nicht den erwarteten Javascript-Inhalt zurück - stattdessen gibt es "Willkommen bei socket.io" zurück, als würde ich http://example.com/nodejs/ treffen.Jede Idee, wie ich diese Arbeit machen kann?
Ich weiß, dass dies nicht mit der Frage zusammenhängt (und bitte rufen Sie mich an, wenn ich eine neue SO Frage öffnen sollte), aber ich bin neugierig, wie Ihre Apache httpd.conf aussieht. Ich habe eine Proxy-Einrichtung für die Weitergabe an den eigentlichen node.js-Server eingerichtet, jedoch kann ich den websockets-Proxy nicht verwenden. Könnten Sie bitte ein Beispiel geben, wie Sie das mit Apache machen? – pmalbu
Sorry, aber ich kann nicht. Dieses Projekt wurde vor über 2 Jahren bei einem Hackathon durchgeführt und der Server, der dafür eingerichtet wurde, existiert nicht mehr. –