Trato de escribir un enlace para el socket.io.
Estoy teniendo problemas con una función (next()
en mi ejemplo de código en la parte inferior), que no toma ningún argumento o un objeto de error (Js.Exn.raiseError("ERROR!")
).
No puedo encontrar una forma de definir una función de firma que puede tomar ambos tipos de argumento como el primer valor.
Ni siquiera estoy seguro de que, si lo que estoy pidiendo es posible en el rescripto, cualquier ayuda para solucionar ese problema en el buen rescripto manera, se agradece.
Mi aplicación actual se parece a esto:
type server
type socket
type next = (. unit) => unit
@new @module("socket.io") external socketIO: unit => server = "Server"
@send external use: (server, (socket, next) => unit) => unit = "use"
@send external listen: (server, int) => unit = "listen"
@send external on: (server, @string [ #connection(socket => unit) ] ) => unit = "on"
let io = socketIO()
io->use((socket, next) => {
Js.log("FIRST")
next(.)
})
io->use((socket, next) => {
Js.log("SECOND")
next(.)
})
io->on(#connection(socket =>
Js.log("CONNECT")
))
io->listen(3000)