Добрый день, нашел много информации но ничего не помогло.
Установил на сервер 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};
Ответы
Перепробовав кучу разных вариантов, таки нашлось решение!
А именно, изменив "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
};
У меня кстати тоже с доменным именем не работало. Я вообще подозреваю, что там можно указать локалхост, если сервер и клиент nodejs работают на одном сервере.
Вот мой конфиг, когда пробовал сборку https://www.drupal.org/project/async_drupal
Да все на одном сервере, но вариант с локалхостом не работает, проверял всякие вариации, думаю тут надо к настройкам сервера копать.