ローカル クライアントで単純な socket.io の例をテストしようとしています。これが私のコードです:
サーバ:
var sio = require('socket.io');
var io = sio.listen(8077, {log: false});
io.sockets.on('connection', function (socket) {
console.log('connection detected');
socket.on('hello', function(data){
console.log('hello received: ' + data);
});
});
クライアント:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script src="socket.io-client/dist/socket.io.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
var socket = io.connect('http://localhost:8077');
if(socket != undefined){
socket.emit('hello', 'this is a test');
}
</script>
</body>
</html>
クライアントをリモート サーバーに置くと問題なく動作しますが、クライアントをローカルから実行しようとすると、ブラウザーに次のエラーが表示されます。
XMLHttpRequest cannot load http://localhost:8077/socket.io/1/?t=1343494806858.
Origin null is not allowed by Access-Control-Allow-Origin
http サーバーでこの問題を解決する http ヘッダーがあることは知っていますが、ソケット コンテキストに同様のオプションがあるかどうかはわかりません。ローカル クライアントが必要です。追加の http nodejs サーバーからクライアント コードを提供したくありません。