Я установил сервер Ubuntu 10.04 в своей домашней сети. Я установил на нем сервер лампы, NodeJs и Socket.io. Кажется, все работает нормально, но я не могу установить соединение с моим клиентом на сервер. Я думаю, что мне не хватает места для хранения файлов клиента и/или того, как IP-адрес и порт должны быть помещены в код.NodeJS + Socket.io: клиент не будет подключаться к серверу Ubuntu в homenetwork
Я использую пример от Дэвида Уолша (http://davidwalsh.name/websocket). Мой ip-адрес сервера - 192.168.1.113. На клиенте я храню app.js в
/USR/местные/бен
То есть, где узел установлен как дост.
Серверный код
// Require HTTP module (to start server) and Socket.IO
var http = require('http'), io = require('socket.io');
// Start the server at port 8000
var server = http.createServer(function(req, res){
// Send HTML headers and message
res.writeHead(200,{ 'Content-Type': 'text/html' });
res.end('<h1>Hello Socket Lover!</h1>');
});
server.listen(8000);
// Create a Socket.IO instance, passing it our server
var socket = io.listen(server);
// Add a connect listener
socket.on('connection', function(client){
// Success! Now listen to messages to be received
client.on('message',function(event){
console.log('Received message from client!',event);
});
client.on('disconnect',function(){
clearInterval(interval);
console.log('Server has disconnected');
});
});
При запуске сервера с узлом и введите адрес в браузере (http://192.168.1.113:8000) Я вижу "Привет Оправа Lover! поэтому я думаю, это работает отлично.
Я храню клиента файл (client.html) в
/вар/WWW
Вот где домашняя папка моего ЛАМПЫ сервера.
Client.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script src="http://cdn.socket.io/stable/socket.io.js"></script>
<script>
// Create SocketIO instance, connect
var socket = new io.Socket('http://192.168.1.113',{
port: 8000
});
socket.connect();
// Add a connect listener
socket.on('connect',function() {
console.log('Client has connected to the server!');
});
// Add a connect listener
socket.on('message',function(data) {
console.log('Received a message from the server!',data);
});
// Add a disconnect listener
socket.on('disconnect',function() {
console.log('The client has disconnected!');
});
// Sends a message to the server via sockets
function sendMessageToServer(message) {
socket.send(message);
}
</body>
</html>
Теперь, когда я открываю этот файл в браузере (http://192.168.1.113/client.html) ничего не происходит. Я не вижу связи на моем сервере Ubuntu или других журналах, и в браузере нет сообщений.
Эмм ... что я делаю неправильно? Я пробовал часами, меняя все виды вещей, но все равно никакого результата.
Вы открыли порт 8000 с сервера Ubuntu, так что вы можете сделать подключение к нему? – pmavik
Благодарим вас за помощь. Я попытался открыть и закрыть порты, используя ufw.Когда я закрываю порт, сообщение «Hello Socket Lovers» не отображается. Когда я открываю его снова, он показывает сообщение, поэтому я не думаю, что это проблема портов. –
В вопросе тега отсутствует файл client.html. Я тоже добавляю это, но никакого результата. –