Giriş yapmadınız.

Duyuru

TÜRKÇE KİTAP DUYURUSU:
Laravel 5 : Laravel 5.1 Güzelliği (Türkçe)
Vue.js 2 : Vue.js 2 Majesteleri (Türkçe)

#1 29.01.2018 17:02:31

GkyKrkc
Üye
Yer: Seyyah
Kayıtlı: 04.04.2017
Mesajlar: 166

Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Merhabalar arkadaşlar malumunuz uzun süredir üzerinde çalıştığım sosyal amaçlı bir proğram yazmıştık , 112  KOBİS (Komuta Bilgi Sistemi ) , şimdilerde ikinci versiyonu yapıyorum, rest api aracılığı ile bilgiler dışarıdan geliyor, kullanıcı bilgileri doğrulandıktan sonra  veritabanındaki ilgili tabloya  kaydoluyor, buraya kadar sıkıntı yok, ama her yeni veri kontrolü için  sayfayı yenilememiz gerekiyor aksi takdirde bu yeni bilgiden haberimiz olmuyor,  ilgili taploya yeni bir veri eklendiğinde ekrana anlık uyarı verdirmek istiyorum, bunu her dakika git tabloyu kontrol et eğer sayıda artış varsa  refresh yap ve ekrana bas mantığının dışında, daha pratik bir yol var ise öneride bulunursanız sevinirim selamlar.

Çevrimdışı

#2 29.01.2018 17:34:42

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 922
Website

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Pratik olan ajax ile periyodik kontrol; zahmetli ama real-time diyebileceğimiz yol ise broadcasting. Sizin işte ajax sunucuyu pek yoracak gibi durmuyor o yüzden ajax ile yapın gitsin.

setInterval(function() {
    $.post( "/api/kontrol", function(response) {
        if(response.updated) {
            // yeni kayıt var, uyarı verelim
        }
    });
}, 2000);
Route::post('api/kontrol')->uses('[email protected]')->name('api.kontrol');
// ApiController::kontrol()
public function kontrol()
{
    $yeniKayitSayisi = User::yeniKayit()->count();

    return response()->json([
        'updated' => (bool) $yeniKayitSayisi,
        'count' => yeniKayitSayisi,
        'checked_at' => Carbon::now()
    ]);
}

Son düzenleyen mgsmus (30.01.2018 04:05:41)

Çevrimdışı

#3 30.01.2018 08:12:52

deathisonitsway
Üye
Kayıtlı: 01.02.2016
Mesajlar: 224

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

en iyi yontem socket bağlantı; mgsmusun dediğini kolay yaparsın ama klasik javascript kodu o...browser durursa o da durur smile browseri kapatırsan oda kapanır..geçici çözüm istiyorsan kullan ama doğrusu socket bağlantıdır real-time işler için.


Laravel does not save you. Php knowledge only save you. Do not become a Laravel programmer, just the opposite,become php developer.

Çevrimdışı

#4 30.01.2018 08:58:49

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 922
Website

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Aslında OneSignal'in rest apisi ile php kullanarak web push bildirimleri ile tarayıcı bildirimleri de kullanılabilir.

Çevrimdışı

#5 30.01.2018 12:05:05

Ekrem
Üye
Yer: Mersin
Kayıtlı: 02.01.2018
Mesajlar: 6
Website

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Bu konuda tek önerebileceğim Socket.IO dur.
Web Yazılımının en büyük eksiği tetikleme sorunudur. Dışarıda tetiklenemez ve bunu yapabilmek için çeşitli yöntemler mevcut. Birisi mgsmus arkadaşımızın verdiği Javascript timer özelliğidir. Fakat bu işlem uzun vadede sıkıntı yaratır, sürekli işlem tarayıcınızın cache'ini şişirecek bu da kullanıcıya yansıyacaktır.

NodeJS + Socket.IO en pratik ve en profesyönel çözümlerden biridir.

https://github.com/socketio/socket.io
https://github.com/mysqljs/mysql

NodeJS ile mysql işlemleri de yapmak isterseniz diğer link'i de kontrol etmenizi öneririm.


Öğrenmek Güzel Şey!

Çevrimdışı

#6 30.01.2018 14:48:01

deathisonitsway
Üye
Kayıtlı: 01.02.2016
Mesajlar: 224

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

SetInterval zamanlayıcı işlevi aslında javascriptin specifikasyonunda bulunmayan bir yontem; javascript bunu browserin zamanlayıcısına güvenerek yaptırıyor.Bu da aslında büyük sorunlara gebe; zira bu yontemin en buyuk eksiği; geri bildirim işlevinin çalışıp çalışmadığı umrunda değil. . zamanlayıcı aşımı geldiğinde bunu browserin yığınına atar ve geri bildirim ilk sıradaysa ne ala; çalışır.yığında bir sürü iş varsa sırası gelmeden çalışmaz.

Artı olarak; uzak sunucuya baglandığınızı deneyin; yapmadığımız şeyler değil yaptık hepimiz smile socket mi vardı zamanında..ağ gecikimi,sistem hatası; karsı sunucu faili..umrunda olmaz ki setIntervalin..zamanlayıcıyı surekli devam ettirir; bir sürü demet yığını..


Laravel does not save you. Php knowledge only save you. Do not become a Laravel programmer, just the opposite,become php developer.

Çevrimdışı

#7 30.01.2018 16:04:30

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 922
Website

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Pratik arkadaşlar, pratik smile O yüzden elimden geldiğince node.js + socket.io seçeneğini en sona bırakıyorum. GkyKrkc bir proje ile ilgileniyor, ben de ona göre konuşuyorum, genel konuşmuyorum. Önce bir projesini ayağa kaldırsın, ondan sonra arkada geliştirmeye devam eder. Aşırı yükleme yapıp yakmayalım arkadaşı smile

Çevrimdışı

#8 30.01.2018 16:07:23

deathisonitsway
Üye
Kayıtlı: 01.02.2016
Mesajlar: 224

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

mgsmus yazdı:

Pratik arkadaşlar, pratik smile O yüzden elimden geldiğince node.js + socket.io seçeneğini en sona bırakıyorum. GkyKrkc bir proje ile ilgileniyor, ben de ona göre konuşuyorum, genel konuşmuyorum. Önce bir projesini ayağa kaldırsın, ondan sonra arkada geliştirmeye devam eder. Aşırı yükleme yapıp yakmayalım arkadaşı smile

sana laf söyleyenin gözü çıksın smile ortaya karısık bizim ki smile


Laravel does not save you. Php knowledge only save you. Do not become a Laravel programmer, just the opposite,become php developer.

Çevrimdışı

#9 30.01.2018 16:16:49

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 922
Website

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Yok ya zaten laf olarak algılamadım, canınız sağolsun, sadece GkyKrkc'ın az çok ne bildiğini ne yaptığını forumdan takip ede ede biliyorum, O yüzden ortaya çaaat diye node ile dalmak istemedim.

Çevrimdışı

#10 06.02.2018 14:42:50

GkyKrkc
Üye
Yer: Seyyah
Kayıtlı: 04.04.2017
Mesajlar: 166

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Değerli arkadaşlar kusura bakmayın küçük bir ameliyat geçirdim bir süre yoktum, öncelikle vermiş olduğunuz cevaplardan dolayı çok teşekkür ederim, Ekrem hocamın da söylediği gibi sanırım bu konuda en hızlısı ve en iyisi node js socket.io diye düşünüyorum , projemde zaten form bildirimlerinde  socket.io kullanıyorum, anlık bildirimleri bu sayede yakalayabiliyorum yani, ama bunu api roote üzerinde nasıl yaparım oraya takılmış durumdayım  örneğin aşağıdaki kodda id si alici olan bir formdan veri gönderildiği zaman socket.io bunu yakalıyor ve id si bildirim olan div içerisinde "Yeni Kayit Bildirimi" şeklinde uyarı basıyor, aynısını 

Route::post('post','[email protected]')->middleware('auth:api');  aynısını bunu api.php  içindeki  Route yolu  üzerinden geçerken yakalamasını ve  uyarı vermesini  istiyorum bunu nasıl yapabilirim , bir fikri olan var mı ?

<script src="{{ asset('js/socket.io.js')}}"></script>
<script>
    var socket = io.connect('http://207.154.247.100:3000');

    socket.on('alici', function (data) {
        var ses=new Audio('ses.mp3');
        ses.play();
        console.log(data.user);
        $( "#bildirim" ).append( "<strong>Yeni Kayıt Bildirimi</strong>" );

    });




</script>
Route::post('post','[email protected]')->middleware('auth:api');

Çevrimdışı

#11 07.02.2018 09:41:33

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 922
Website

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Geçmiş olsun.

Keşke node ve socket kullandığınızı önce söyleseydiniz, konuyla direkt alakalı çünkü.

Bu aşamaya geldiğinize göre artık broadcasting kullanacaksınız demektir.
https://laravel.com/docs/5.5/broadcasting

Yani yeni kayıt bildirimi için önce bir tane broadcast eventı oluşturacaksınız. [email protected] yöntemi içerisinde bu event ateşlenecek (kuyruğa alınacak). Daha sonra socket ile o eventı dinleyeceksiniz (alici dinlediğiniz gibi).

Buradan yola çıkabilirsiniz.

Son düzenleyen mgsmus (07.02.2018 09:42:03)

Çevrimdışı

#12 08.02.2018 15:52:49

deathisonitsway
Üye
Kayıtlı: 01.02.2016
Mesajlar: 224

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

geçmiş olsun gkyKrkc


Laravel does not save you. Php knowledge only save you. Do not become a Laravel programmer, just the opposite,become php developer.

Çevrimdışı

#13 09.02.2018 10:15:28

Ekrem
Üye
Yer: Mersin
Kayıtlı: 02.01.2018
Mesajlar: 6
Website

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Öncelikle geçmiş olsun.
mgsmus'un dediği gibi söylemen gereken en önemli şeyi "projemde zaten form bildirimlerinde  socket.io kullanıyorum" en sona saklamışsın smile

ve yine mgsmus'un verdiği linkle halledersin problemini.


Öğrenmek Güzel Şey!

Çevrimdışı

#14 11.02.2018 21:07:29

GkyKrkc
Üye
Yer: Seyyah
Kayıtlı: 04.04.2017
Mesajlar: 166

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Ekrem yazdı:

Öncelikle geçmiş olsun.
mgsmus'un dediği gibi söylemen gereken en önemli şeyi "projemde zaten form bildirimlerinde  socket.io kullanıyorum" en sona saklamışsın smile

ve yine mgsmus'un verdiği linkle halledersin problemini.

çok teşekkür ederim üstadım, Allah razı olsun selamlar

Çevrimdışı

#15 11.02.2018 21:40:19

GkyKrkc
Üye
Yer: Seyyah
Kayıtlı: 04.04.2017
Mesajlar: 166

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Arkadaşlar kodlarım aşağıdaki gibi eventi ateşlemek için  [email protected] fonksiyonunun içine event(new App\Events\EventYeniHasta()); yazdım daha sonra terminal üzerinden ana dizinde  node socket.js yazarak socketi çalıştırdım bana 3000 portunun dinlendiği cevabını verdi, ama  [email protected] fonksiyonunu çalıştırdığım zaman ana sayfadaki id si bildirim olan div içerisine datayı yazdıramıyorum acaba nerede yanlış yapıyorum.

YeniHasta Event

<?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class EventYeniHasta extends Event implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    use SerializesModels;

    public $data;

    public function __construct()
    {
        $this->data = array(
            'power'=> '10'
        );
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return Channel|array
     */
    public function broadcastOn()
    {
        return new PrivateChannel('YeniHasta');
    }
}

master.blade.php

<div id="bildirim"></div>
<script src="{{ asset('js/jquery-3.2.1.min.js')}}"></script>
<script src="{{ asset('js/socket.io.js')}}"></script>
<script>
    var socket = io.connect('http://207.154.247.100:3000');

    socket.on("YeniHasta:App\\Events\\EventYeniHasta", function(message){
        // increase the power everytime we load test route
        $('#bildirim').text(parseInt($('#bildirim').text()) + parseInt(message.data.power));
    });

</script>

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

Çevrimdışı

#16 13.02.2018 01:56:55

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 922
Website

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

socket.on("YeniHasta:App\\Events\\EventYeniHasta", function(message){
    console.log(message);
});

Bu şekilde konsolda çıktıyı görebiliyor musunuz?

Bir de broadcastOn kısmında PrivateChannel kullanmışsınız yani sayfaya üye girişi yapılması lazım değil mi?

Bir de arka planda kuyruk işlemcisi çalışıyor değil mi?

Çevrimdışı

#17 13.02.2018 17:59:19

GkyKrkc
Üye
Yer: Seyyah
Kayıtlı: 04.04.2017
Mesajlar: 166

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

mgsmus Üstadım kuyruk işlemciden kastımız, terminale yazdığımız  node socket.js  nin aktif edilip edilmediği mi ? yoksa başka bişey mi smile karıştırdım bir an, socket 3000 portunu dinliyor şuan aktif

Çevrimdışı

#18 13.02.2018 20:25:15

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 922
Website

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Sizin EventYeniHasta ShouldBroadcast arayüzünü gerçeklediği için ateşlenmek üzere kuyruğa alınacak demektir.
Kuyruğa alınan olayın çalıştırılabilmesi için de php artisan queue:work şeklinde arka planda ayrıca kuyruk işleyicisinin çalışması lazım.

Çevrimdışı

#19 13.02.2018 21:34:03

GkyKrkc
Üye
Yer: Seyyah
Kayıtlı: 04.04.2017
Mesajlar: 166

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Bunların hepsini yaptım, Node Js ve socket io çalışıyor, Redis çalışıyor, AppServiceProvider içindeki Broadcast claslarını aktifleştirdim buralarda sorun yok , kodlarımı tekrar paylaşıyorum bir yerde atladığım bir olay var ama bulamıyorum, terminalde  php artisan queue:work yazdım herhangi bir cevap alamadım ekran  bekledi durdu.  sanırım bırakacam vazgeçecem bu işten smile) sonuna kadar gelip küçük bir hata yüzünden vazgeçmeyeyeyim dedim son olarak sizlerin onayına sunuyorum. hepinize saygılar.

EventYeniHasta.php

<?php
namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class EventYeniHasta implements ShouldBroadcast
{
    use SerializesModels;

    public $message;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($message)
    {
        $this->message = $message;
    }

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

[email protected] methodu

namespace App\Http\Controllers;
use App\Events;
use App\Transformers\PostTransformer;
use App\Events\EventYeniHasta;
use Illuminate\Http\Request;
use App\Post;
use Illuminate\Support\Facades\Auth;


class PostController extends Controller
{
    public function add(Request $request, Post $post)
    {
        event(new EventYeniHasta('Yeni Hasta Eklendi'));
        $this->validate($request,[
            'tc' => 'required|min:10',
            'adi' => 'required',
            'soyadi' => 'required'
        ]);

        $post=$post->create([
            'user_id' => Auth::user()->id,
            'tc' => $request->tc,
            'adi' => $request->adi,
            'soyadi' => $request->soyadi,
        ]);

        $response =fractal()
            ->item($post)
            ->transformWith(new PostTransformer)
            ->toArray();
        return response()->json($response,201);

    }

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.event, message.data);
});
http.listen(3000, function(){
    console.log('Listening on Port 3000');
});

master.blade.php

<div id="bildirim">Uyarı Burada Çıkacak</div>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>
<script type="text/javascript">
    var socket = io('http://207.154.247.100:3000');
    socket.on("test-channel:App\\Events\\EventYeniHasta", function(message){
        console.log("Merhaba");
        alert("deneme");
        //$('#bildirim').text(parseInt($('#bildirim').text()) + parseInt(message.data));
    });
</script>

.env

BROADCAST_DRIVER=redis
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=redis

Son düzenleyen GkyKrkc (14.02.2018 09:53:35)

Çevrimdışı

#20 14.02.2018 09:31:30

alihankoc
Üye
Kayıtlı: 14.09.2017
Mesajlar: 13

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Yeni hasta eklendiğinde bildirim göndermeyi hemen yapacaksanız kuyruğa almanıza gerek yok. Doğrudan controller içinde redis ten paylaşıp Nodejs tarafında dinleyip yayınlayabilirsiniz neden iki iş yapıyorsunuz?

Controller içerisinde redis e göndermek istediğimiz veri $data değişkeninde olsun.
Redis'te dinlemek istediğimiz kanal dinlenecekKanal olsun. Aşağıdaki şekilde redis'te publish edebiliriz.

    $data =[
        'message'=>'Yeni Hasta Eklendi',
        'baskabirsey'=>'Başka bir data'
    ];
	Redis::publish('dinlenecekKanal', json_encode($data));

Daha sonra Nodejs tarafında bu kanalı subscribe edip gelen datayı alabiliriz.

var redis = require("redis")
  , subscriber = redis.createClient()
  , publisher  = redis.createClient();
subscriber.auth('egerVarsaRedisSifreniz');
publisher.auth('egerVarsaRedisSifreniz.');
subscriber.on("message", function(kanal, mesaj) {
  //burada channel ile kanal ismini, message ile de Laravel'de gönderdiğimiz $data değişkenindeki array'i alabiliriz.
  // artık bu mesaj ile neler yapabiliriz senin ihtiyacına kalmış. 
  // Socket'e gönderebilirsin, Mongodb ye yazabilirsin, slack'e bildirim atabilirsin falan feşmekan.. 

  console.log(kanal);
  console.log(" kanalından");
  console.log(mesaj);
  console.log("mesajı yayınlandı");

   // diyelim veriyi işledin birşeyler yaptın yeniden laravel e göndereceksin, 
   // publisher ile de yeniden redis te paylaşabilirsin. 
  publisher.publish('yeniKanal', 'Yeni mesaj');
  

});
// burada dinlenecek kanalları yazmamız lazım. .
subscriber.subscribe("dinlenecekKanal");

//Laravel'de dinlemek için

        Redis::subscribe(['yeniKanal'], function ($mesaj) {
            print_r($mesaj);
        });

Son düzenleyen alihankoc (14.02.2018 09:36:57)

Çevrimdışı

#21 14.02.2018 10:51:57

GkyKrkc
Üye
Yer: Seyyah
Kayıtlı: 04.04.2017
Mesajlar: 166

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

alihankoc üstadım eline sağlık, aslında farklı bir bakış açısı ve daha pratik bir yöntem, bu şekilde yapmak şuan için işimi görür ama ileride büyüyecek bir proje için broadcasting mantığını şimdiden sisteme dahil etmeyi ve öğrenmeyi amaçlıyorum, geçenlerde mgsmus üstadım bir link paylaşmıştı biraz onu inceledim (  https://github.com/mgsmus/laravel-redis-socketio-test) sistem  Class 'Predis\Client' not found hatası veriyor smile   artık bu mantığı çözemessem senin yöntem daha pratik geldi sanırım onu kullanacam, emeklerin için çok teşekkür ederim  eğer bu ve benzeri örnekleri çoğaltabilirsek formumuz adına da iyi bir kazanım olacaktır, çünkü basit bir mantıkla ekrana veri yazdırma işini artık herkes yapıyor, önemli olan kompleks verilerle daha büyük projeler geliştirmek , teşekkür ediyorum.

Çevrimdışı

#22 14.02.2018 14:15:40

GkyKrkc
Üye
Yer: Seyyah
Kayıtlı: 04.04.2017
Mesajlar: 166

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

mgsmus üstadım daha önceki paylaşmış olduğun çalışmayı inceledim ve uyarladım ((  https://github.com/mgsmus/laravel-redis-socketio-test))    http://207.154.247.100/alert    lakin  Class 'Predis\Client' not found  hatası alıyorum redisi yeniden kurdum composer dump-autoload ,cache:clear felan yaptım ama anlamadım ? neden bu hatayı veriyor ki

Çevrimdışı

#23 14.02.2018 14:16:02

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,194
Website

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

Predis\Client hatasının sebebi gerekli paketin uygulamanıza dahil edilmemiş olmasıdır.

composer require predis/predis

komutu ile paketi dahil edin, sorun çözülür.

Çevrimdışı

#24 14.02.2018 14:28:10

GkyKrkc
Üye
Yer: Seyyah
Kayıtlı: 04.04.2017
Mesajlar: 166

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

yaptım ama herdefasında aşağıdaki sonucu aldım,  redis-cli yazdığımda redis çalışıyor ama predis paketini neden yüklememiş olabilir ki, composer update yaptım yine olmadı çattık valla  üstadım:))
127.0.0.1:6379>

Using version ^1.1 for predis/predis
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Killed

Çevrimdışı

#25 14.02.2018 15:24:00

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,194
Website

Yanıt: Api Aracılığı İle Gelen Yeni Veri Olursa Ekrana Bildirim Çıkartmak

composer.json içinden mükerrer kayıtlar var olmadığından emin ol.
İşlemi sanal makinede çalıştırıyorsan RAM miktarını arttır.

composer self-update

ile composer'ı son sürüme yükselt.

sonra

composer require predis/predis

tekrar dene.

Çevrimdışı

Forum alt kısmı