Bunun için bir bağlayıcı yazmaya çalışıyorum. socket.io.
Bir işlevle ilgili sorun yaşıyorum (next()
alttaki örnek kodumda), bu argüman veya hata nesnesi almaz (Js.Exn.raiseError("ERROR!")
).
Her iki argüman türünü de ilk değer olarak alabilecek bir işlev imzası tanımlamanın bir yolunu bulamıyorum.
Sorduğum şeyin rescript'te mümkün olup olmadığından bile emin değilim, bu sorunu uygun rescript şekilde çözmek için herhangi bir yardım takdir edilecektir.
Şu anki uygulamam şöyle görünüyor:
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)