mkhleel
1/12/2017 - 6:11 AM

Chat With laravel 4.2

Chat With laravel 4.2

<div class="chat-box">

</div>
  $(document).on('keydown', '.send', function(e){
    var msg = $(this).val();
    var element = $(this);
    if (e.keyCode == 13 && !e.shiftKey) {
      $.ajax({
        url:'{{URL::to('site/replymessage/'.$from_id)}}',
        type : 'post',
        data : {message_text:msg, message_from :'{{Auth::User()->id}}'}

      });
      element.val('');
    }
  });
$(function() {
  liveChat();
});
  function liveChat(){
    $.ajax({
      url:'{{URL::to('site/msgajax/'.$from_id)}}',
      data:[],
      success:function(data){
        $('.chat-box').append('<div class="panel panel-default"><div class="panel-body">'+data['message_text']+'</div></div>');
        setTimeout(liveChat,1000);
      },
      error:function(){
        setTimeout(liveChat,5000);
      }
    });
  }

    public function getMsgajax($id)
    {
      ini_set('max_execution_time', 7200);
      while (Message::where('check', 0)->count() < 1) {
        usleep(1000);
      }

      if (Message::where('check', 0)->count() > 0) {
        $data = Message::
        where(function($query) use ($id){
          $query->where('check', 0);
          $query->where('message_from', Auth::user()->id);
          $query->where('message_to', $id);
        })
        ->orWhere(function($query) use ($id){
          $query->where('check', 0);
          $query->where('message_to', Auth::user()->id);
          $query->where('message_from', $id);
        })->first();
        $id = $data->id;
        $edit = Message::find($id);
        $edit->check = 1;
        $edit->save();
        return Response::json([
          'message_text' => $data->message_text
        ]);
      }
    }
    public function postReplymessage($user_id) {
        $validator = Validator::make(Input::all(), Message::$rules2);
        if ($validator->passes()) {
            $user = new Message;
            $user->message_text = Input::get('message_text');
            $user->message_title = 'بخصوص رسالتك المرسله الي ';
            $user->message_to = $user_id;
            $user->message_from = Auth::User()->id;
            $user->save();
            // return Redirect::back();
        }
        return Redirect::back()
                        ->with('yes', 'لقد حدث خطاء في ارسال الرساله  ')
                        ->withErrors($validator)
                        ->withInput();
    }