Вы здесь

Node.js Drupal 7 не подключается socket.io

1

Добрый день, нашел много информации но ничего не помогло.
Установил на сервер Node.js, версия node.js v0.10.41, npm 3.7.1
Следуя инструкции по интеграции node.js и drupal, выполнил все шаги. Но при выполнении node server.js, запускается только http сервер (Started http server.), т.е. не подключается socket.io
Из этого топика https://www.drupal.org/node/2286859 , следует что версия socket.io новее чем использовалась ранее и предлагается в конфиг файле добавить это transports: ['websocket', 'flashsocket', 'htmlfile', 'xhr-polling', 'polling'], , но это ничего не меняет.
В консоли же все отображается, т.е. при создании тестового сообщения получаю это:

publishMessage: message { broadcast: true,
  data: { subject: '123', body: '123' },
  channel: 'nodejs_notify',
  clientSocketId: '' }
Broadcasting message

Может кто подскажет, что можно сделать!

И вот мой конфиг:

backendSettings = {
  "scheme":"http",
  "host":"mysite.ru",
  "port":8888,
  "key":"",
  "cert":"",
  "resource":"/socket.io",
  "publishUrl":"publish",
  "serviceKey":"key",
  "backend":{
  "port":80,
  "host":"mysite.ru",
  "messagePath":"/nodejs/message"},
  "clientsCanWriteToChannels":false,
  "clientsCanWriteToClients":false,
  "extensions":"",
  "debug":true,
  "transports":['websocket', 'flashsocket', 'htmlfile', 'xhr-polling', 'polling'],
  "jsMinification":true,
  "jsEtag":true,
  "logLevel":1};
Версия Drupal: 
7.x
Связанные проекты: 
Node.js integration
Вопрос задан 10.02.2016 - 17:16

Ответы

2

Перепробовав кучу разных вариантов, таки нашлось решение!
А именно, изменив "host":"mysite.ru", на "host":"ip адрес", т.е. как я понимаю это связанно с настройкой dns на сервере? Почему у некоторых работает с именем домена, а у меня только с ip адресом? Дайте пояснения, интересно.
ну и конечный код конфига:

settings = {
  scheme: 'http',
  port: 8888,
  host: '111.111.111.111',
  resource: '/socket.io',
  serviceKey: 'key',
  backend: {
    port: 80,
    host: '111.111.111.111',
    scheme: 'http',
    basePath: '/',
    messagePath: '/nodejs/message'
  },
  debug: true,
  sslKeyPath: '',
  sslCertPath: '',
  sslCAPath: '',
  baseAuthPath: '/nodejs/',
  publishUrl: 'publish',
  kickUserUrl: 'user/kick/:uid',
  logoutUserUrl: 'user/logout/:authtoken',
  addUserToChannelUrl: 'user/channel/add/:channel/:uid',
  removeUserFromChannelUrl: 'user/channel/remove/:channel/:uid',
  addChannelUrl: 'channel/add/:channel',
  removeChannelUrl: 'channel/remove/:channel',
  setUserPresenceListUrl: 'user/presence-list/:uid/:uidList',
  addAuthTokenToChannelUrl: 'authtoken/channel/add/:channel/:uid',
  removeAuthTokenFromChannelUrl: 'authtoken/channel/remove/:channel/:uid',
  toggleDebugUrl: 'debug/toggle',
  contentTokenUrl: 'content/token',
  publishMessageToContentChannelUrl: 'content/token/message',
  extensions: [],
  clientsCanWriteToChannels: false,
  clientsCanWriteToClients: false,
  transports: ['websocket', 'polling', 'json-polling'],
  jsMinification: true,
  jsEtag: true,
  logLevel: 1
};
Ответ дан 11.02.2016 - 07:44

У меня кстати тоже с доменным именем не работало. Я вообще подозреваю, что там можно указать локалхост, если сервер и клиент nodejs работают на одном сервере.
Вот мой конфиг, когда пробовал сборку https://www.drupal.org/project/async_drupal

/**
* This configuration file was built using the 'Node.js server configuration builder'.
* For a more fully commented example see the file nodejs.config.js.example in the root of this module
*/
backendSettings = {
  "scheme":"http",
  "host":"192.168.110.5",
  "port":8888,
  "key":"/path/to/key/file",
  "cert":"/path/to/cert/file",
  "resource":"/socket.io",
  "publishUrl":"publish",
  "serviceKey":"",
  "backend":{
  "port":80,
  "host":"async.pr0g.ru",
  "messagePath":"/nodejs/message"},
  "clientsCanWriteToChannels":false,
  "clientsCanWriteToClients":false,
  "extensions":"",
  "debug":false,
  "transports":["websocket",
  "polling"],
  "jsMinification":true,
  "jsEtag":true,
  "logLevel":1};
Комментарий оставлен 11.02.2016 - 08:24

Да все на одном сервере, но вариант с локалхостом не работает, проверял всякие вариации, думаю тут надо к настройкам сервера копать.

Комментарий оставлен 13.02.2016 - 06:51