2017-09-21 7 views
0

Drupal 8をNodeJSモジュールとともにインストールして設定しました。Drupal 8 + NodeJSが接続されていますが、フロントエンドに通知が表示されません。

Nodejs Notifcationsモジュール(nodejs_notify)が有効になっているので、私はメッセージをブロードキャストしようとしました。何を得るか?全沈黙。どこにも通知はありません。これは、端末が示したものです。ここで

[2017/09/21 16:43:45] Route callback: checkServiceKey 
[2017/09/21 16:43:45] Route callback: publishMessage 
[2017/09/21 16:43:45] Body 
{ broadcast: true, 
    data: { subject: 'hey ', body: 'hey' }, 
    channel: 'nodejs_notify' } 
[2017/09/21 16:43:45] broadcastMessage 
{ broadcast: true, 
    data: { subject: 'hey ', body: 'hey' }, 
    channel: 'nodejs_notify' } 

は私の構成設定です:

settings = { 
    scheme: 'http', 
    port: 8888, 
    host: 'localhost', 
    resource: '/socket.io', 
    serviceKey: 'test', 
    backend: { 
    port: 80, 
    host: '178.62.13.67', 
    scheme: 'http', 
    basePath: '', 
    messagePath: '/nodejs/message' 
    }, 
    debug: true, 
    sslKeyPath: '', 
    sslCertPath: '', 
    sslCAPath: '', 
    baseAuthPath: '/nodejs/', 
    extensions: [], 
    clientsCanWriteToChannels: false, 
    clientsCanWriteToClients: false, 
    transports: ['websocket', 'polling'], 
    jsMinification: true, 
    jsEtag: true, 
    logLevel: 1 
}; 

私はDrupalの8中のプラグインのいずれかの通知の種類をインストールする必要がありますか?

どのような通知が表示されますか?私は、HTML 5プッシュ通知ポップアップをブラウザ上に仮定します。

紛失しているものはありますか?

私は他のユーザーを作成しようとしましたが、別のコンピュータでチェックしましたが運がありませんでした。通知はありません。全沈黙。

私は狂っている。 ありがとうございます。

答えて

0

私はnodejsと同様の問題を抱えていました& drupal 8.私はついにそれを動作させることができました。これは私がそれを行う方法です:

解決策に2つの部分がありました。

問題1.最初は、アプリケーションが無効なトークンエラーを表示していたというエラーが発生しました。
解決策: - 設定jsonのキーは、次のように二重引用符で囲む必要があります。

settings = { 
    "scheme": "http", 
    "port": 8080, 
    "host": "", 
    "resource": "socket.io", 
    "serviceKey": "AS GIVEN IN DRUPAL NODEJS SETTINGS", 
    "backend": { 
    "port": 80, 
    "host": "myhost.dev", 
    "scheme": "http", 
    "basePath": "", 
    "messagePath": "/nodejs/message" 
    }, 
    "debug": true, 
    "sslKeyPath": "", 
    "sslCertPath": "", 
    "sslCAPath": "", 
    "baseAuthPath": "/nodejs/", 
    "extensions": [], 
    "clientsCanWriteToChannels": false, 
    "clientsCanWriteToClients": false, 
    "transports": ["websocket", "polling"], 
    "jsMinification": true, 
    "jsEtag": true, 
    "logLevel": 1 
}; 

問題2:Drupalはサーバーに接続できますが、通知はまだ機能していません。働い

私のソリューションは:

問題がNodejs.phpファイル内Nodejsクラスの機能safeNodeServerVerion()にあるように見えました。最後の行を次のように変更しました。

/** This was the original line **/ 
return $this->nodeServerVersion && $this->nodeServerVersion >= self::SAFE_NODE_SERVER_VERSION; 

ノードのバージョンの比較が期待通りに機能しませんでした。

「。」が削除されました。バージョン文字列では、それらを整数としてキャストし、次に比較します。今は私にとってはうまくいくようです。コードの作業

$node_ver = (int)str_replace('.', '', $this->nodeServerVersion); 
$safe_node_ver = (int)str_replace('.', '', self::SAFE_NODE_SERVER_VERSION); 
return $this->nodeServerVersion && $node_ver >= $safe_node_ver; 

が、これは誰かに役立ちます願っています。乾杯。

関連する問題