2016-07-29 21 views
0

Ich habe bereits installiert node.js, socket.io, Predis, ioredis in Laravel 5.2localhost nicht senden alle Daten in Laravel 5.2 (socket.io)

Wenn ich

laufen node socket.js

in gitbash wird nichts zurückgegeben.

auf localhost: 3000, zuerst lädt es für irgendwann dann localhost keine Datenfehler angezeigt wird gesendet haben

socket.js Datei (sollte angezeigt werden durchgeführt). http://laravel.io/bin/OeGxv

Routen-Datei: http://laravel.io/bin/d9PvY

package.json: http://laravel.io/bin/Kk5mB

Antwort

0

ich denke nicht, Ihnen helfen kann, aber ich erfolgreiche Verwendung redis mit Laravel 5.1 und das ist Code.

composer.json

"require": { 
    "php": ">=5.5.9", 
    "laravel/framework": "5.1.*", 
    "pusher/pusher-php-server": "^2.2", 
    "predis/predis": "^1.1" 

routes.php

Route::get('/setredis',[ 
    'as'=>'set.redis', 
    'uses'=>'[email protected]' 
]); 

Route::get('/getredis',[ 
    'as'=>'get.redis', 
    'uses'=>'[email protected]' 
]); 

Route::get('fire', function() { 
    // this fires the event 
    event(new \App\Events\EventName()); 
    return "event fired"; 
}); 

Route::get('test', function() { 
    // this checks for the event 
    return view('test'); 
}); 

TestController.php

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Http\Controllers\Controller; 
use Redis; 

class TestController extends Controller 
{ 
    /** 
    * Display a listing of the resource. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function index() 
    { 
     Redis::set('name', 'Taylor'); 
    } 

    /** 
    * Show the form for creating a new resource. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function create() 
    { 
     $user = Redis::get('name'); 
     echo $user; 
    } 

test.blade.php

@extends('master') 

@section('content') 
    <p id="power">0</p> 
@stop 

@section('footer') 
    <script src="https://cdn.socket.io/socket.io-1.4.5.js"></script> 
    <script> 
     var socket = io('http://testlaravel5.com:3000'); 
     socket.on("test-channel", function(message){ 
      console.log(message); 
      // increase the power everytime we load test route 
      $('#power').text(parseInt($('#power').text()) + parseInt(message.data.power)); 
     }); 
    </script> 
@stop 

socket.js

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.subscribe('test-channel', function(err, count) { 
}); 
redis.on('message', function(channel, message) { 
    console.log('Message Recieved: ' + message); 
    message = JSON.parse(message); 
    io.emit(channel, message.data); 
}); 
http.listen(3000, function(){ 
    console.log('Listening on Port 3000'); 
}); 

EventName.php

<?php 

namespace App\Events; 

use App\Events\Event; 
use Illuminate\Queue\SerializesModels; 
use Illuminate\Contracts\Broadcasting\ShouldBroadcast; 

class EventName extends Event implements ShouldBroadcast 
{ 
    use SerializesModels; 
    public $data; 
    /** 
    * Create a new event instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     $this->data = array(
      'power'=> '10' 
     ); 
    } 

    /** 
    * Get the channels the event should be broadcast on. 
    * 
    * @return array 
    */ 
    public function broadcastOn() 
    { 
     return ['test-channel']; 
    } 
} 

Ich hoffe, Sie helfen!

+0

ty für den Code, aber wenn ich zu localhost gehe: 300, kann nicht GET/angezeigt werden. –

+0

auch bei localhost: 8000/Feuer, Fehler ist: Klasse 'App \ Events \ EventName' nicht gefunden –