THẢO LUẬN

Khi 1 client kết nối thì đầu tiên nó phải tới Laravel Echo Server trước, mà ở phía Laravel Echo server e còn chưa thấy j thì 96,69% đoạn kết nối tới Laravel Echo ở file bootstrap.js của e đang có vấn đề.

Đầu tiên khả năng cao e đang dùng laravel-echo-server bản mới nên nó ko khớp với socket.io-client e định nghĩa ở file bootstrap.js nữa (lỗi này đã có 1 bạn nhắn a ở bài Viết ứng dụng chat realtime .... rồi). A cũng đã update bài đó nhưng a chưa có tgian update lại cho các bài này. Đầu tiên e giúp a sửa lại file resource/views/app.blade.php, như sau:

<body>
        <div id="app" class="h-100"></div>
        <script src="http://localhost:4000/socket.io/socket.io.js"></script>
        <script>window.__app__ = @json($data)</script>
        <script src="{{ mix('js/manifest.js') }}"></script>
        <script src="{{ mix('js/vendor.js') }}"></script>
        <script src="{{ mix('js/app.js') }}"></script>
    ..................
    </body>

Chú ý rằng bên trên a đã thêm vào đoạn script để import socket.io, đây là ta đang import thư viện socket.io-client được cung cấp bởi laravel-echo-server (nên nó sẽ tương thích). Sau đó ở file bootstrap.js e comment đoạn sau lại:

import Echo from 'laravel-echo'

// window.io = require('socket.io-client') // comment dòng này <<----------

window.Echo = new Echo({
  broadcaster: 'socket.io',
  host: `${window.location.protocol}//${window.location.hostname}:${process.env.MIX_FRONTEND_PORT}`
})

Sửa code Vue nên e phải build lại frontend nhé:

docker run --rm -v "/$(pwd)":/app -w //app node npm run prod

Sau đó thì e chạy lại project như bình thường, cùng với đó e kiểm tra kĩ cho a:

  • e mở Chrome Developer tool xem còn báo lỗi j ko nhé
  • sau đó check ở đoạn cấu hình Nginx đã có block location /socket.io hay chưa, đã proxy_pass vào đúng tên service laravel_echo_server:6001 hay chưa
  • file .env đã có MIX_FRONTEND_PORT=4000 hay chưa
0

@khanhney thank bác

0
thg 1 21, 2021 2:24 CH

cảm ơn bạn nhé

0
thg 1 21, 2021 11:35 SA

😍

0

thank anh, em đang dự tính học

0
thg 1 21, 2021 11:29 SA

Bài này ko phải mấy bài được dịch từ web tiếng anh (m đoán vậy 😃) nên m đọc thấy trôi hơn hẳn, hóng những bài còn lại của series

0

@vietgroup chào bạn, ở trên đoạn getAllCategory, bên trong then đoạn forEach đoạn đó phải là this.listCategory.forEach chứ nhỉ, sao lại trường data ở bên trong listCategory là thế nào vậy bạn?

0

@quangphunguyen Thật nhọ là mình dùng BEM để đặt class css xong bị chửi sml và bắt phải sửa hết lại. Lý do là mình đặt class box-products_content thì khi anh ấy kích đúp để coppy lại chỉ bôi đen được đoạn products_content mà không được cả cụm.Do đó coppy nó bị chậm.

0
thg 1 21, 2021 9:47 SA

Hay

+1
thg 1 21, 2021 9:41 SA

@bunny.pi.green top trend nhé =)))

0
thg 1 21, 2021 9:41 SA

sao đọc xong mà vẫn thấy sầu nhỉ

-1

Oh no! Amazing!

+1
thg 1 21, 2021 9:25 SA

phát hiện cái bug to bằng cái thúng fix đi nhé 😃

0

cute để giật tít cho hiệu quả =))

+1
thg 1 21, 2021 9:05 SA

ko còn câu nào khác ah e 😂

0
thg 1 21, 2021 8:58 SA

Bài viết ý nghĩa quá !😘

0

@maitrungduc1410 mình sử dụng "npm install laravel-vue-pagination" để làm phân trang

code php laravel:

$categorys = InterfaceCat::get()->paginate(10);
return response($categorys, 200);

code html:

<pagination :data="listCategory" :limit="2" :align="'center'" @pagination-change-page="getAllCategory">
			<span slot="prev-nav">{{trans('Langcore::global.Previous')}}</span>
			<span slot="next-nav">{{trans('Langcore::global.Next')}}</span>
		</pagination>

code vuejs load data mình viết thế này:

<script>
getAllCategory(page=1){
				axios.get(route('interfacepackage.admin.listcategory'),{params:{page:page}})
				.then(response=>{
					this.listCategory = response.data;
    				this.listCategory.data.forEach(item => {
                        Vue.set(item, 'isEdit', false)
                    });
				})
				.catch(error=>{
					if (error.response) {
	    				this.errors = error.response.data.errors.name
	    			}
				})
			}
</script>

Bạn xem giúp mình, cám ơn bạn rất nhiều

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí