2017-09-01 42 views
0

我有一個當前在godaddy上託管的後端應用程序。後端是Laravel 5.4,前端是Ionic 2.我想添加一個實時聊天到現有的應用程序。我將使用socket.io和redis。所有的聊天消息將被保存到我的數據庫(在godaddy上)。去爸爸不允許運行節點服務器,除非你買了一個VPS,但他們收取太多我可以在VPS上運行node.js服務器,但可以從父親託管的laravel後端向它傳播事件嗎?

我想知道如果這個設置是可能的。

  • 用戶發送的消息
  • 通過POST請求被髮送的消息從我的前端到我的後端被保存在數據庫中。
  • 一旦消息被保存,廣播消息/事件從laravel發送到前端

現在的問題是,我可以使用類似A2託管(對於VPS $ 5),以唯一宿主我的插座。 io & redis服務器。所以基本上我想知道我能否將laravel(去爸爸)的消息廣播到A2主機,並讓我的前端聽A2服務器?還是我主持我的整個後端上A2託管,因爲我不能發送廣播消息到A2的託管,除非服務器也去爸爸

運行的希望就是我要問有道理

我的服務器。 JS文件(在laravel根)

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)); 

廣播到頻道

public function broadcastOn() 
{ 

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

回答

相關問題