This commit is contained in:
ntr committed 2022-09-11 21:16:33 +10:00
1 parent 111f690482
commit 2c66c47163
14 files changed
+168 -58

No files matched your search

+13 -7
View File
@@ -16,6 +16,7 @@ import type { Listing, User, Want, Prisma } from '@prisma/client';
import { Pg } from './pg';
import routerAuth from './routers/router.auth';
import { Events } from './events';
import createRpc, { RpcMessageType } from './rpc';
export default function createApi(log: Log, pg: Pg, discogs, offers, events) {
const PORT = 41337;
@@ -153,22 +154,27 @@ export default function createApi(log: Log, pg: Pg, discogs, offers, events) {
app.ws.use(passport.session());
app.ws.use(async (ctx, next) => {
log.info('new ws connection', { user: ctx.state.user });
ctx.websocket.on('message', async function incoming(message) {
log.info(message.toString());
// log.child...
const ws = ctx.websocket;
const rpc = createRpc(log, pg, ctx.state.user, ws, discogs, offers);
if (ctx.state.user) events.emit(Events.Connection, { ws, id: ctx.state.user.id });
ws.on('message', async function incoming(message) {
try {
const parsed = JSON.parse(message.toString());
log.info(parsed);
// const response = await rpc.receive(parsed);
// rpc.send(ws, response);
const response = await rpc.receive(parsed);
rpc.send(response);
} catch (e) {
log.warn(e);
log.warn(message.toString());
// rpc.send(ws, [RpcMessageType.Error, e.message || e.msg])
rpc.send([RpcMessageType.Error, e.message || e.msg]);
}
return true;
});
ctx.websocket.on('close', function onClose() {
ws.on('close', function onClose() {
log.info('ws disconnected', { user: ctx.state.user });
});
});