между множеством пользователей на базе SignalR для передачи сообщений по Http, но для синхронизации и обработки данных на сервере хочу использовать Hopac и совсем не понимаю как на нем писать. Может кто нить дописать пример такой задачи в консольном виде?
// Parallel read messages from ReadLine() |> addToCommandChannel
// Example of command (update name to "NewName")
// it executes when not busy
// after work write to channelOut |> propertyUpdated name "NewName"
// state contains variables
// state contains 2 channels
// printer watches channelOut and printing it to stdout
type Property<'a> =
{
Name : string
Value : 'a
}
type Command =
UpdateName of Property<string>
type CommandResult =
UpdatedName of Property<string>
type ModelState =
val name : MVar<string>
val inputCh : Ch<Command>
val outputCh : Ch<CommandResult>
[<EntryPoint>]
let main argv =
printfn "%A" (UpdateName { Name = "name"; Value = "kek" })
0
Тебе нужен некий сервер, который получает сообщения по одному, известному всем каналу, при обработке создаёт IVar(канал тоже можно) ответа, который передает в незаполненном виде обработчику и тут же отдаёт этот IVar клиенту и переходит на следующий луп
Спасибо, более подробно почитаю про эти абстракции, попробую сделать)
Там к слову дока супер и подобные примеры описаны
На первый взгляд дока показалось слишком сложной и многословной, тк раньше работал только с тасками и асинками.
Обсуждают сегодня