Aller au contenu

Taille limite d'un sock:read ?


Messages recommandés

Posté(e)

Hello, 

 

Quelqu'un sait-il quelle est la taille limite d'un sock:read ? 

Lors d'un Read, je reçois systématiquement la réponse venant d'un système annexe tronquée toujours au même endroit. C'est vrai que la réponse reçue est un Json relativement long, mais pas non plus à rallonge...

 

Je m'explique : je suis en train de faire un QA pour gérer les systèmes HEOS (un peu dans le genre du SONOS, mais en plus simple hein, suis pas @Krikroff moi :-)) 

J'ai donc un socket d'ouvert sur le contrôleur HEOS, et lorsque je lui envoie la requête pour obtenir le Media en cours, la réponse est un json qui contient toute l'information du morceau en cours de lecture. Il est relativement long, et est toujours coupé à une certaine taille, donc inexploitable puisqu'il fait planter le json.decode qui suit, comme il manque la fin.

 

@Krikroff, je ne sais pas quelle méthode tu utilises dans le QA Sonos pour faire la même requête, mais je suppose que la réponse du Sonos doit être aussi relativement longue non ?

 

Suis un peu à court d'idées...mon QA commence à fonctionner correctement sauf cette partie qui est la plus importante :-)

 

 

 

Posté(e)

Je ne sais pas ce que tu appelles "long"... mais peut-être qu'un caractère particulier est interpreté comme marqueur de fin !

 

Peut être qu'il faudrait mieux utiliser la fonction sock:readUntil()

 

voir ici : https://manuals.fibaro.com/home-center-3-quick-apps/

 

Tu pourras ainsi définir un marqueur de fin de trames spécifique...

C'est ce que j'utilise et aucun soucis, après mes trames ne sont pas "longues"...

Posté(e)

salut @jjacques68, certaines trames dépassent les 1200 caractères. Ce n'est pas très long effectivement, c'est juste un bon gros json, mais ca devrait être gérable.

je vais essayer avec sock:readUntil comme le json est terminé par un \r\n ca devrait pour voir fonctionner. 

merci beaucoup, j'essaie ca ce weekend

 

Posté(e)

bon ben j'ai pas attendu le weekend :-) je viens de faire le test avec sock:readUntil et ca marche nickel :60:

 

merci beaucoup pour le coup de main :13:

 

  • Like 1
×
×
  • Créer...