Hướng dẫn kết hợp ReactJS và socket (phần 1)

Tram Ho

Trong bài viêt này, mình sẽ cùng các bạn tạo ra 1 ứng dụng realtime cùng với Reactjs và socketio. Cụ thể hơn, sản phẩm chúng ta hướng tới sẽ là 1 game đơn giản để 2 người có thể chơi online với nhau, mình sẽ đặt tên nó là Pikachu War.

Bắt đầu thôi!!!

1/ Khởi tạo base project

Chúng ta sẽ tạo react project với cú pháp thần thánh quen thuộc

npx create-react-app pikachu-war

Sau đó truy cập vào folder pikachu-war: cd pikachu-war

Vì chúng ta xây dựng app dựa trên kết hợp react và socketio nên chắc chắn không thể thiếu socketio rồi, cài đặt thêm socketio, hoặc đơn giản là copy đoạn code sau vào file package.json của bạn

Sau khi copy xong thì nhớ chạy thêm câu lệnh npm install hoặc yarn để cài đặt các package có trong list trên

2/ Tạo component

chúng ta sẽ tạo 1 component là Screen để pikachu của chúng ta có thể di chuyển trên đó, tạo 1 file và đặt tên là Board, hoặc đơn giản là copy đoạn code này vào:

Giải thích

  • Trước tiên, các bạn sẽ cần kiếm 2 hình khác để thay cho pikachu.jpg và break_wall.jpg để có thể chạy được ứng dụng.
  • BoardContainer là 1 hình vuông lớn có chứa 9×9 ô nhỏ RectangleContainer ( nó giống như bàn cờ vua nhưng to hơn tí)
  • các button và hàm moveObject giúp chúng ta di chuyển nhân vật pikachu đi trong bàn cờ, kết hợp cùng với hàm detectObstacle, nhân vật pikachu của chúng ta sẽ không thể di chuyển đè lên các ô có dữ liệu object là ‘break_wall’.
  • func renderRect sẽ render các ô vuông ra có chứa object phù hợp ra, ( bao gồm, pikachu, break_wall và ô đường đi)
  • dataBoard chúng ta sẽ nhận từ Component cha

App.js

chúng ta sẽ code lại file app.js như sau

3/ Tạo server

chúng ta sẽ tạo thư mực chứa server Node, mkdir server để tạo folder server

tạo file package.json với nội dung như sau

tiếp theo tạo file index.js với nội dung

sau đó chạy lệnh npm install hoặc yarn để cài đặt package, node index.js để chạy server trên port:6969

Giờ các bạn có thể chạy ứng dụng trên địa chỉ http://localhost:3000, và đây là thành quả.

Cơ bản là chúng ta đã xong được hình hài đầu tiên của app, bạn có thể bấm các button tương ứng để điều khiển pikachu. Bạn của bạn cũng có thể mở thêm 1 trang khác lên và điểu khiển pikachu của bạn, và bạn cũng sẽ thấy nó chuyển động trên máy mình

Dù vậy, ứng dụng của chúng ta vẫn còn thiếu rất nhiều thứ. trong phần sau mình sẽ tiếp tục tạo thêm room riêng để 2 người chơi có thể chiến đâu với nhau trong room

Cảm ơn các bạn đã theo dõi bài viết

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo