Основная проблема в том, что node.js нельзя запустить на одном порту с apache, поэтому я использую такую вещь как .connect('https://php-justrelaxdc.c9users.io:3000')
;, чтобы сокет коннектился на порту 3000, на котором работает Нода, но это всё равно не помогает.
Сервер node.js запускается без ошибок, в клиенте переодически вылетали ошибки типа polling-xhr.js:264 GET https://justrelaxdc-php-5449204/socket.io/?EIO=3&transport=polling&t=Lze15yq net::ERR_NAME_NOT_RESOLVED
, но когда добавил {'transports': ['xhr-polling']}
, то ошибки исчезли, но сообщения по-прежнему не обрабатываются, как и само подключение. Я думаю, что проблема тут var socket = io.connect('https://php-justrelaxdc.c9users.io:3000', {'transports': ['xhr-polling']})
;, похоже, что я не правильно указываю хост, хотя пробовал уже по-разному, не уверен. Сообщение в консоль "connect" не выводится, поэтому оно даже не подключается.
Код сервера:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on('connection', function(socket){
console.log('connected');
socket.on('chat message', function(msg){
console.log('chat message');
io.emit('chat message', msg);
});
});
http.listen(3000, function(){
console.log('listening on:3000');
});
Код клиента:
$(function () {
var socket = io.connect('https://php-justrelaxdc.c9users.io:4000', {'transports': ['xhr-polling']});
$('#form').submit(function(){
if($('#sendMassage').val() != ''){
socket.emit( 'chat message', $('#sendMassage').val() );
$('#sendMassage').val('');
return false;
}else{
return false;
}
});
socket.on('chat message', function(msg){
$('.chat ul').append("<li class='<?php echo $visitor ?>'>" + text(msg) + "</li>");
div.scrollTop(div.prop('scrollHeight'));
});
});
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Почему в Laravel из коробки валидация подразумевается в контроллере, а не в модели?
Существует CMS DLEКогда вбиваете искомое слово в поисковую строку, то генерируется страница с результатами
Данный код отрабатывает на локалке, но на сервере он просто не выводит переменную c с которой провели операцию mysqli_fetch_row Символы которые выводятся...