Lewati ke konten

Websocket

@gaman/websocket adalah plugin resmi yang didedikasikan untuk GamanJS. Plugin ini dibangun di atas library ws.

GamanJS adalah kerangka kerja untuk aplikasi backend, Anda dapat menginstall menggunakan manajer paket favorit Anda:

Terminal window
npm install @gaman/websocket ws

Upgrade server http kamu pakai @gaman/websocket berikut adalah caranya:

index.ts
import { WebsocketGateway } from "@gaman/websocket"
defineBootstrap(async (app) => {
const server = await app.mountServer(':3431').
WebsocketGateway.upgrade(server); // upgrade your http
});

sekarang buat websocket handler kamu memakai composeWebsocket()

ChatWebsocket.ts
import { composeWebsocket } from "@gaman/websocket"
export default composeWebsocket((event) => {
Log.info('Client joined: ' + event.clientId);
event.onMessage((msg) => {
event.send('your message: ' + msg);
})
})

sekarang masukan ChatWebsocket.ts tadi ke route yang kamu inginkan

AppRoutes.ts
import { ChatWebsocket } from ".";
export default autoComposeRoutes((route) => {
route.ws('/chat', ChatWebsocket);
});

lalu sambungkan ke ws://localhost:3431/chat Jika Anda menggunakan wscat, gunakan perintah ini wscat -c ws://localhost:3431/chat lalu ketik pesan dan enter

berikut adalah contoh akses websocket gamanjs dari client side

<script>
const socket = new WebSocket('ws://localhost:3431/chat')
socket.onmessage = (event) => {
console.log(event.data) // output: 'Client joined: 21515151-client-id'
}
</script>