2017-01-10 8 views
0

私はほぼ10時間を探していて、ちょうどsimilar questionが見つかりました。申し訳ありませんが、それはちょうど愚かな質問ですが、どちらか私は認識していないか、それはすべきである方法で動作していない。角2、ララベル5.2とioredisリアルタイムアプリ

だから私の角度2の成分は、私は私のlaravelルートディレクトリにsocket.jsを構成した

import * as io from "socket.io-client"; 
export class TasklistComponent implements OnInit { 
ngOnInit() { 
    var socket = io("http://localhost:3000"); 
    socket.on("test-channel:TasklistModified", function(message) { 
     console.log(message); 
    }); 
} 
} 

のようなものがあります。

var app = require('express'); 
var http = require('http').Server(app); 
var io = require("socket.io")(http); 
var Redis = require("ioredis"); 
var redis = new Redis({ 
    scheme: 'localhost', 
    port: 6379,   // Redis port 
    host: '127.0.0.1' 
}); 

redis.subscribe('test-channel', function(err, count) { 
    //.. 
}); 

redis.on('message', function(channel, message) { 
    console.log("Message Recieved", channel, message); 

    message = JSON.Parse(message); 
    io.emit(channel + ":" + message.event, message.payload); 
}); 

http.listen(3000, function() { 
    console.log('listening on port 3000'); 
}); 

そして私は、私が開いている2つのブラウザをしましたし、実行しようとした、

角度routes.php

Route::get('event', function() { 
    event(new TasklistModified([ 
     'name' => 'test' 
    ])); 
}); 
//Event Class 
use App\Events\Event; 
use Illuminate\Queue\SerializesModels; 
use Illuminate\Contracts\Broadcasting\ShouldBroadcast; 

class TasklistModified extends Event implements ShouldBroadcast 
{ 
    use SerializesModels; 
    public $tasklist; 
    public function __construct($tasklist) 
    { 
     $this->tasklist = $tasklist; 
    } 
    public function broadcastOn() 
    { 
     return ['test-channel']; 
    } 
} 

laravelに次のイベントクラスとルートをしました:localhostを:4200

そしてLaravel

localhost:8000/event

laravelでeventルートをヒットしたときに応答が得られませんでした。

ノードを実行

アプリケーション:3000

Laravel:8000

Angular2は:4200の

あなたの答えは、多くのことを理解されるであろう。 ありがとう

答えて