2017-09-01 12 views
0

私は現在、godaddyでホストされているバックエンドを持つアプリを持っています。バックエンドはLaravel 5.4、フロントエンドはIonic 2です。私は既存のアプリにライブチャットを追加したいと思います。 socket.ioとredisを使用します。すべてのチャットメッセージは私のデータベースに保存されます(godaddy上)。あなたがvpsを購入しないとノードサーバーを稼働させることはできませんが、料金が高すぎます。VPSでnode.jsサーバを実行することはできますが、パパのホストされたlaravelバックエンドからイベントをブロードキャストできますか?

この設定が可能かどうかは疑問でした。

  • ユーザーは、メッセージがデータベースに保存されるように私のバックエンドに私のフロントエンドからのPOSTリクエストを介して送信されるメッセージ
  • を送信します。
  • メッセージが保存されると、ブロードキャストメッセージ/イベントは、今、私の質問は、私は私のソケットをホストするために(VPSのための$ 5)ホスティングA2のようなものを使用することができますされlaravelからフロントエンドに

に送信されます。 io & redis server。だから、基本的に私はlaravel(パパに行く)からA2へのメッセージをブロードキャストでき、フロントエンドでA2サーバを聞くことができますか?それとも私は、サーバーにも私が作るの

私のサーバーを感知求めているものをうまく行けば行くパパ

上で実行されていない限り、私はホスティングA2にメッセージをブロードキャストすることはできませんので、ホスティングA2に私の全体のバックエンドをホストする必要があります。

var app = require('express')(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 
var Redis = require('ioredis'); 

var redis = new Redis(); 
redis.psubscribe('private-chat.*', function(err, count) { 
    console.log('psubscribe'); 
}); 

redis.on('pmessage', function(subscribed, channel, message) { 
    console.log('pmessage', subscribed, channel, message); 
    message = JSON.parse(message); 
    io.emit(channel + ':' + message.event, message.data); 
}); 
http.listen(3000, function(){ 
    console.log('Listening on Port 3000'); 
}); 

がチャンネルに放送に

// save it to the database and than 
event(new NewMessagePosted($message)); 

放送を送信する(laravelのルートにある)のjsファイル

public function broadcastOn() 
{ 

    return new PrivateChannel('chat.'. $this->message->chatID); 
} 

答えて

関連する問題