Не работает чат Node.js + apache(php)

202
31 октября 2017, 00:18

Основная проблема в том, что 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'));
    });
  });
READ ALSO
Валидация в Laravel. Почему контроллер?

Валидация в Laravel. Почему контроллер?

Почему в Laravel из коробки валидация подразумевается в контроллере, а не в модели?

186
Сохранить результаты поиска в DLE

Сохранить результаты поиска в DLE

Существует CMS DLEКогда вбиваете искомое слово в поисковую строку, то генерируется страница с результатами

210
Не выводятся переменные в PHP

Не выводятся переменные в PHP

Данный код отрабатывает на локалке, но на сервере он просто не выводит переменную c с которой провели операцию mysqli_fetch_row Символы которые выводятся...

254
Ошибка приема данных AJAX

Ошибка приема данных AJAX

Делаю регистрациюС помощью AJAX

200