Node.jsスクリプトを実行すると、localhost:8083を使用してアクセスできますが、別のデバイスからのマシンのIPアドレスを使用すると「このサイトはできません達成される」。Node.js - Socket.ioはlocalhost経由でしかアクセスできない
<script src = "http://code.jquery.com/jquery-1.10.1.min.js" > </script>
<script src="/socket.io/socket.io.js "></script>
<script>
// Connecting to socket.io
var socket = io.connect("10.254.17.115:8083");
// The username is requested, sent to the server and displayed in the title
var username = prompt('What\'s your username?');
socket.emit('new_client', username);
document.title = username + ' - ' + document.title;
// When a message is received it's inserted in the page
socket.on('message', function(data) {insertMessage(data.username, data.message)})
// When a new client connects, the information is displayed
socket.on('new_client', function(username) {
$('#chat_zone').prepend(
'<p><audio class="background" autoplay><source src="new-user.mp3" type="audio/wav"></audio><em>' + username + ' has joined the chat!</em></p>');
})
// When the form is sent, the message is sent and displayed on the page
$('#chat_form').submit(function() {
var message = $('#message').val();
socket.emit('message', message); // Sends the message to the others
insertMessage(username, message); // Also displays the message on our page
$('#message').val('').focus(); // Empties the chat form and puts the focus back on it
return false; // Blocks 'classic' sending of the form
});
// Adds a message to the page
function insertMessage(username, message) {
$('#chat_zone').prepend('<p><strong>' + username + '</strong> ' + message + '</p>');
}
</script>
編集:ここでは
var app = require('express')(),
server = require('http').createServer(app),
io = require('socket.io').listen(server),
ent = require('ent'), // Blocks HTML characters (security equivalent to htmlentities in PHP)
fs = require('fs');
// Loading the page index.html
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket, username) {
// When the username is received it’s stored as a session variable and informs the other people
socket.on('new_client', function(username) {
username = ent.encode(username);
socket.username = username;
socket.broadcast.emit('new_client', username);(err) {});
});
// When a message is received, the client’s username is retrieved and sent to the other people
socket.on('message', function (message) {
message = ent.encode(message);
socket.broadcast.emit('message', {username: socket.username, message: message});
});
});
console.log('Chat Socket.io running on port 8083');
server.listen(8083);
がクライアントスクリプトです:改訂ポートが、彼らは問題がなかった私は、次のNode.js サーバスクリプトを使用しています。 var socket = io.connect
をio()
に変更しました。
Socket.IOサーバを実行するマシンは、そのポートでの着信接続を許可していますか?ファイアウォールがこれらの要求をブロックしている可能性があります。 – arthurakay
サーバが8083で動作している場合、クライアントスクリプトがポート8081に接続しようとしているのを待ちますか? – arthurakay
''スペースを使用していますか? –