серверная часть:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/live', function(req, res){
res.sendFile(__dirname + '/test.html');
});
io.on('connection', function(socket){
console.log('an user connected...');
socket.on('chat message', function(mes){
console.log('message: ' + mes);
});
});
http.listen(3000, function(){
console.log('Listeting *: 3000');
});
и клиентская часть:
<!-- Взял из адрес_сервера:3000/socket.io/socket.io.js -->
<script src="js/socket.io.js"></script>
<script>
$(function(){
var socket = io.connect('http://адрес_сервера:3000/live', {transports: ['websocket'], upgrade: false});
socket.emit('chat message', 'hello');
});
</script>
При этом клиентская часть находится вне директории проекта: это обычный веб-сайт в своей public_html.
Проблема: срабатывает только событие io.on('connection', т.е. console.log('an user connected...') выводит сообщение, но событие chat message не происходит ни в ту ни в другую сторону. При этом если отправить это событие из test.html, который лежит в папке проекта, то всё работает.
Так же если написать в клиентской части:
socket.on('connect', function(){
alert(123);
});
то ничего не произойдет, алерт не выстрелит.
Обмениваться сообщениями с клиентом вне директории проекта незаконно или я что-то не понимаю?
Продвижение своими сайтами как стратегия роста и независимости