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