แพ็กเกจอย่างเป็นทางการ · เฟรมเวิร์ก
เรียลไทม์สำหรับ Spring Boot ในสไตล์ของ Spring
สตาร์ตเตอร์ที่ฉีด Hibira client ให้ใช้งาน อนุญาตช่อง private และ presence ด้วยเมธอดของ bean ที่ใส่แอนโนเทชัน และแปลงเว็บฮุกเป็นอีเวนต์ของแอปพลิเคชัน เบราว์เซอร์และแอปเชื่อมต่อด้วย pusher-js, Laravel Echo หรือ Pusher SDK บนมือถือ โดยไม่ต้องดูแลเซิร์ฟเวอร์ WebSocket หรือ STOMP broker เอง
hibira-spring-boot-starterMaven Central ↗GitHub ↗
- @HibiraChannel อนุญาตช่องตามผู้ใช้จาก Spring Security และสตาร์ตเตอร์มีเอนด์พอยต์ยืนยันตัวตนที่ pusher-js เรียกให้พร้อม ใช้ได้ทั้ง Spring MVC และ WebFlux
- @HibiraBroadcast ส่งอีเวนต์ของแอปพลิเคชันไปยังเบราว์เซอร์หลังทรานแซกชันคอมมิต และเว็บฮุกจะมาถึงเป็น WebhookEvent สำหรับ @EventListener
- client ยังส่งเข้ากล่องแจ้งเตือน ส่งพุชโนติฟิเคชัน และขออนุมัติได้ด้วย รองรับ Spring Boot 3 และ 4, Java 17 ขึ้นไป และใช้ hibira-java ได้โดยไม่ต้องมี Spring
ลงชื่อเข้าใช้เพื่อดูโค้ดตัวอย่างเหล่านี้พร้อมโฮสต์คลัสเตอร์ของคุณเอง ลงชื่อเข้าใช้
ติดตั้ง
<dependency> <groupId>io.hibira</groupId> <artifactId>hibira-spring-boot-starter</artifactId> <version>0.1.0</version> </dependency> <!-- environment --> HIBIRA_APP_ID=YOUR_APP_ID HIBIRA_KEY=YOUR_APP_KEY HIBIRA_SECRET=YOUR_APP_SECRET HIBIRA_HOST=ws.hibira.ioตั้งค่า
class Channels { boolean order(Principal user, long orderId) { return orders.isOwner(orderId, user.getName()); } } record OrderShipped(long orderId, String carrier) {} // in a @Transactional service: sent once the transaction commits events.publishEvent(new OrderShipped(1042, "DHL")); hibira.trigger("orders", "order.created", Map.of("id", 1042)); // or send directlyใช้งาน
const pusher = new Pusher('YOUR_APP_KEY', { wsHost: 'ws.hibira.io', cluster: '', enabledTransports: ['ws', 'wss'], channelAuthorization: { endpoint: '/hibira/auth', headers: { 'X-XSRF-TOKEN': csrfToken } }, userAuthentication: { endpoint: '/hibira/user-auth', headers: { 'X-XSRF-TOKEN': csrfToken } }, }); pusher.signin(); // hibira.sendToUser(...) reaches this tab pusher.subscribe('private-orders.1042').bind('order.shipped', (order) => console.log(order));
ก่อนเริ่ม
- ซีเคร็ตของแอปจะแสดงเพียงครั้งเดียว ตอนสร้างแอปหรือตอนหมุนเวียนซีเคร็ต เก็บไว้บนเซิร์ฟเวอร์เท่านั้น ห้ามใส่ในเบราว์เซอร์หรือไฟล์บิลด์ของเกม
- ถ้าใช้ Spring Security ให้ส่ง CSRF token จากเบราว์เซอร์ (หรือยกเว้น /hibira/auth และ /hibira/user-auth) และให้ /hibira/webhooks ผ่านได้โดยไม่ต้องมีเซสชันหรือ CSRF token เพราะเอนด์พอยต์ตรวจลายเซ็นเอง
- ในแพ็กเกจ Free ให้เพิ่มทุก origin ที่โหลดหน้าเว็บของคุณลงใน allowed origins ของแอป (ระหว่างพัฒนาใช้ http://localhost:8080 แล้วตามด้วยโดเมนของคุณ) ส่วน "*" ต้องใช้แพ็กเกจแบบชำระเงิน
ใช้ app key จากแดชบอร์ดของคุณ ส่วน secret ให้เก็บไว้บนเซิร์ฟเวอร์เท่านั้น ช่อง อีเวนต์ และ endpoint การยืนยันสิทธิ์ทำงานเหมือนกับที่ใช้กับ Pusher ทุกประการ สร้างบัญชีฟรีของคุณ →