<prompt> Tekeleza mfumo wa arifa wa wakati halisi katika Node.js ambao husikiliza masasisho katika hifadhidata ya PostgreSQL na kusukuma arifa zinazofaa kwa wateja waliounganishwa kwa kutumia Socket.IO.PLINFORMAT  <response>: const express needexpress;const http hitaji http;const socketIO needsocket.io;const pgp needpg-promise; Usanidi wa Hifadhidataconst dbConfig mwenyeji: localhost, bandari: 5432, hifadhidata: jina_la_database_yako, mtumiaji: jina_la_la_mtumiaji, nenosiri: nenosiri_lako;const db pgpdbConfig; Unganisha kwenye hifadhidata na usikilize mabadiliko katika jedwali la arifadb.connect direct: true .kishaconn conn.client.onnotification, async data const payload JSON.parsedata.payload; const notification await db.oneCHAGUA KUTOKA arifa WAPI id 1, payload.id; io.emitarifa-mpya, arifa; ; return conn.noneSIKILIZA arifa_mpya; .kamatakosa console.errorHitilafu ya kuunganisha kwenye hifadhidata:, hitilafu; ; Sanidi seva ya Express na Socket.IOconst app express;const server http.createServerprogramu;const io socketIOseva;app.useexpress.staticpublic;io.onmuunganisho, tundu console.logMtumiaji ameunganishwa; Shughulikia tukio jipya la arifa socket.onkitambulisho cha mtumiaji, async userId const notisi await db.anyCHAGUA KUTOKA arifa WHERE user_id 1 ORDER BY created_at DESC, userId; socket.emitarifa za awali, arifa; ; Hushughulikia kukatwa soketi.onondoa, console.logMtumiaji amekataliwa; ;;const PORT process.env.PORT 3000;server.sikilizaPORT, console.logSeva inafanya kazi kwenye bandari PORT;; 