J'ai toujours construit mes propres sérialiseurs/désérialiseurs pour pouvoir utiliser BeginReceive/EndReceive avec des sockets afin d'éviter d'utiliser un thread par socket connectée. C'est une tâche assez longue.Approche asynchrone pour utiliser des flux avec des sockets
J'ai commencé à regarder protobuf-net et je veux l'utiliser avec des sockets async sans avoir à écrire moi-même la sérialisation/désérialisation. Je préférerais ne pas avoir à utiliser un thread par socket pour boucler les opérations de blocage.
En regardant le quickstart, ils font exactement cela (un thread par client). N'y a-t-il pas d'autre moyen?
Ma question n'est pas vraiment sur protobuf-net, mais sur la sérialisation et les sockets en général. Mais les exemples pour protobuf-net sont les bienvenus.
Les méthodes de sérialiseur/désérialiseur dans Serializer sont saisies, non? Je ne sais pas quel message protobuf je recevrai et je ne peux donc pas les utiliser, existe-t-il des alternatives? – jgauffin
La réponse de Marc est correcte. Buffering à une "variante" longueur n'est pas facile, cependant. –
@jgauffin - il existe un mécanisme via 'Serializer.NonGeneric' qui est conçu ** exactement ** pour cela, avec un mécanisme pour fournir le type à la volée. Il y avait une question récente avec un exemple de ceci ici sur SO. –