the guideの後に、ブラウザとクライアント間のメッセージングを容易にするためにSocket.IOでNode.jsを使用しようとしています。apacheをリバースプロキシとして使用するサーバーでnodejsとsocket.ioを使用する
しかし、Apacheの背後に逆プロキシされたNodeをセットアップする必要がありました。だから、example.com:8080の代わりにnodeのために、私はexample.com/nodejs/を使用しています。
これは、Socket.IOがそれ自身の感覚を失うように思えます。ここに私のノードアプリは
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);
});
});
そして、ここでは私のクライアントのファイルは、ここでの問題はhttp://example.com/nodejs/socket.io/socket.io.jsへのスクリプト参照である
<!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>
次のようになりますです。期待されるjavasscriptのコンテンツを返しません。代わりに、私がhttp://example.com/nodejs/を打つかのように "welcome to socket.io"を返します。
どのように私はこの作品を作ることができますか?
これは手元の質問とは無関係であることを知っています(新しいSO質問を開く必要がある場合は私に電話してください)が、あなたのApache httpd.confがどのように見えるか不思議です。実際のnode.jsサーバに渡すためにプロキシを設定しましたが、WebSocketプロキシを動作させることができません。あなたはApacheでこれをやっている例を教えてください。 – pmalbu
申し訳ありませんが、私はできません。このプロジェクトは2年以上前にhackathonで行われており、設定されたサーバーはもはや存在しません。 –