169 похожих чатов

Всем привет, делаю дипломчик, хочу сделать сервер синхронизации данных приложения

между множеством пользователей на базе 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

4 ответов

18 просмотров

Тебе нужен некий сервер, который получает сообщения по одному, известному всем каналу, при обработке создаёт IVar(канал тоже можно) ответа, который передает в незаполненном виде обработчику и тут же отдаёт этот IVar клиенту и переходит на следующий луп

Amir-Niyazov Автор вопроса
Ayrat Hudaygulov
Тебе нужен некий сервер, который получает сообщени...

Спасибо, более подробно почитаю про эти абстракции, попробую сделать)

Amir Niyazov
Спасибо, более подробно почитаю про эти абстракции...

Там к слову дока супер и подобные примеры описаны

Amir-Niyazov Автор вопроса
Ayrat Hudaygulov
Там к слову дока супер и подобные примеры описаны

На первый взгляд дока показалось слишком сложной и многословной, тк раньше работал только с тасками и асинками.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта