Pesquisar

Pergunta
· Jul. 16

Websocket client failing to return data

Hi,

Using the below code to connect and get data from a server:

Class SX3.Production.HTTP.AdvCredenials Extends (%RegisteredObject, %Net.WebSocket.ICredentials)
{ Method GetUsername() As %String
{
quit ""
} /// Returns the password to use for authentication with the web socket
/// @API.Overrideable
Method GetPassword() As %String
{
quit ""
} Method GetSSLConfiguration() As %String
{
"RTLS"
}}

Class SX3.Production.HTTP.AdvListener Extends (%RegisteredObject, %Net.WebSocket.IEventListener)
{ Method OnOpen()
{
 ^badis("mess",3)=1
if $increment(%ct("O")) set io=$io use 0 write "OPEN",! break:$get(%b) use io
} /// Called when an error occurs in the web socket connection.<br />
/// @API.Overrideable
Method OnError(pError As %Exception.AbstractException)
{
^badis("mess",4)=1
if $increment(%ct("E")) set io=$io use 0 write !
do $system.OBJ.DisplayError()
if pError.Code=28000 kill ws   use io quit     ;connection lost
zwrite pError write ! break:$get(%b) use io
} /// Called when the web socket connection is closed by either the client (%OnClose) or the server (by sending a close frame).<br />
/// @API.Overrideable
Method OnClose()
{
 if $increment(%ct("C")) set io=$io use 0 write "CLOSE",! BREAK:$get(%b) use io
}

/// Called when the client receives a message from the server. <br />
/// <var>pContent</var> may be a binary or UTF8-decoded character stream. <br />
/// @API.Overrideable
Method OnMessage(pContent As %Stream.Object)
{
^badis("mess",5)=1
if $increment(%ct("M")) set io=$io use 0 write "MESSAGE:",pContent,!
if $isobject(pContent) write pContent.Read(),! ^badis("mess")=pContent 
if $get(%b) zwrite pContent BREAK  
use io
} }
 

 

ClassMethod GetAdvData() As %String
{

 Token=##class(SX3.Task.TemperatureCollection).GetAuth()
BleMac="DC:0D:30:9D:14:49",GatewayMac="CC:1B:E0:E2:42:80"  // this for testing
set cre=##class(SX3.Production.HTTP.AdvCredenials).%New()
set evl=##class(SX3.Production.HTTP.AdvListener).%New()
^track("onmess",1)=cre_"|"_evl
Set WebSocURL="https://ac1.mqtt.sx3ac.com/api/gap/nodes?filter_mac="_BleMac_"&filter_rssi=-75&mac="_GatewayMac_"&active=1&event=1&chip=1&access_token="_Token
^track("onmess",2)=WebSocURL
Set WebSoc=##class(%Net.WebSocket.Client).%New(WebSocURL,cre,evl)
Quit WebSoc_"|"_WebSocURL

}

WebSockets are enabled on ports 80 & 443, but the code fails at Set WebSoc=##class(%Net.WebSocket.Client).%New(WebSocURL,cre,evl) call, any help would be much appreciated, also how can I get the generated data ?

iris version: IRIS for UNIX (Ubuntu Server LTS for x86-64 Containers) 2024.3 (Build 217U) Thu Nov 14 2024 17:30:43 EST 

BTW the same url runs fine and returns data if I run it in a browser:

 

Thanks Guys

5 Comments
Discussão (5)3
Entre ou crie uma conta para continuar
Artigo
· Jul. 16 3min de leitura

Pautas para usar IA generativa al escribir publicaciones en la Comunidad de Desarrolladores

Nuestro objetivo en la Comunidad de Desarrolladores es fomentar un contenido técnico original, fiable y de alta calidad, creado por y para desarrolladores. Aunque herramientas de IA como ChatGPT pueden ser útiles en el proceso de redacción, esperamos que todo el contenido publicado refleje experiencia auténtica y comprensión personal. Si tenéis alguna pregunta o queréis comentar vuestro problema de programación con una IA, considerad usar nuestro chat de IA de la Comunidad de Desarrolladores.

Uso aceptable de la IA

Reconocemos que las herramientas de IA pueden ayudar con la edición y la claridad. Podéis usarlas de las siguientes maneras:

  • Para corregir la gramática, la ortografía y la puntuación.
  • Para mejorar la estructura de las frases y la legibilidad.
  • Para reformular vuestro propio contenido de forma más clara.
  • Como asistente de redacción, no como fuente de ideas técnicas o explicaciones.

Ejemplo: Escribir un artículo sobre cómo usar la clase %SYSTEM.JSON por vosotros mismos y usar ChatGPT para mejorar la fluidez y claridad de las frases.

Lo que no está permitido

Para proteger la integridad de nuestra plataforma, no se permiten los siguientes usos de contenido generado por IA:

  • Redactar artículos completos (o partes sustanciales) utilizando ChatGPT, Copilot, Gemini u otros modelos de lenguaje de gran tamaño.
  • Publicar explicaciones, tutoriales o descripciones de código generadas por IA como si fueran ideas propias.
  • Enviar contenido que haya sido generado principalmente por IA con solo una edición o revisión mínima.

Ejemplo: Pedir a ChatGPT que "escriba un artículo extenso destacando los beneficios del estándar FHIR" y publicar la respuesta como si fuera vuestro propio trabajo.

Transparencia

Para mantener una alta calidad de contenido y preservar la confianza en la comunidad, debéis procurar ser transparentes respecto al uso de IA generativa. En concreto:

  • Si la IA ha contribuido de forma sustancial a la redacción — incluso si ha sido editada — debéis indicarlo en una nota al final del artículo.
  • No es necesario revelar el uso editorial menor de IA (por ejemplo, correcciones gramaticales o mejoras de claridad).

Ejemplo: Este artículo fue ligeramente editado con ChatGPT para mejorar la gramática y la legibilidad.

Concursos de programación

La IA generativa puede ser una herramienta poderosa para acelerar la programación y el desarrollo, pero al igual que los programadores humanos, puede cometer errores. Los asistentes de programación (por ejemplo, Cursor, Windsurf) y otros productos de IA generativa pueden usarse al desarrollar aplicaciones que se vayan a presentar a un Concurso de Programación, siempre que se sigan las pautas anteriores.

Además, los participantes del concurso son responsables de garantizar que su aplicación cumpla con todos los criterios del concurso y refleje su propia experiencia. Las presentaciones que utilicen IA generativa en su desarrollo están sujetas a los mismos estándares de calidad que el código escrito completamente por humanos.

Consecuencias de un uso inadecuado

Nos reservamos el derecho de rechazar o eliminar artículos, o descalificar presentaciones de concursos que no se alineen con estos principios. Las infracciones repetidas pueden dar lugar a restricciones en los privilegios de publicación.

Por qué esto importa

La IA puede ser una asistente útil, pero no puede sustituir vuestra perspectiva. Lo que da valor a un artículo técnico es vuestro proceso de pensamiento, vuestra experiencia y vuestra comprensión. Eso es lo que queremos destacar y apoyar en nuestra comunidad.

Dejad que vuestra voz sea la guía. Usad las herramientas con responsabilidad.

Discussão (0)1
Entre ou crie uma conta para continuar
Pergunta
· Jul. 15

Fire-and-forget async/background non-blocking tasks

I need to implement a retry policy for an incoming message queue containing thousands of relatively small messages.

Successfully processed messages should be immediately removed from the queue.

8 Comments
Discussão (8)4
Entre ou crie uma conta para continuar
Artigo
· Jul. 15 2min de leitura

Reviews on Open Exchange - #53

If one of your packages on OEX receives a review you get notified by OEX only of YOUR own package.   
The rating reflects the experience of the reviewer with the status found at the time of review.   
It is kind of a snapshot and might have changed meanwhile.   
Reviews by other members of the community are marked by * in the last column.

I also placed a bunch of Pull Requests on GitHub when I found a problem I could fix.    
Some were accepted and merged, and some were just ignored.     
So if you made a major change and expect a changed review just let me know.

# Package Review Stars IPM Docker *
1 iris-opentelemetry a 6* experience 6.0      
2 ReadyForAction unusual + impressive 5.4   y  
3 Facilis now with user guide 5.0   y  
4 Interoperability REST API Template Looks promising! 5.0     *
5 IRIS Interop DevTools Great CCD Analyzer! 5.0 y y *
6 Smart Clinical Copilot - Configuration Management System Best AI 5.0   y *
7 ZPretty-upd back and working 5.0 y y *
8 ? Care ?? Compass ?? Useful Tool with Real Potential 5.0     *
9 shvarov-persistent just perfect 5.0 y y  
10 dc-customer-support-agent works OK 4.8   y  
11 smart-day-hands-on no code but mostly videos 4.5      

 

  •  

composed with PNI

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Jul. 15 3min de leitura

Directives pour l'utilisation de l'IA générative lors de la rédaction de publications sur la Communauté des développeurs

Notre objectif au sein de la Communauté des développeurs est de promouvoir un contenu technique original, fiable et de haute qualité, créé par et pour les développeurs. Si des outils d'IA comme ChatGPT peuvent être utiles à la rédaction, nous attendons de tout contenu publié qu'il reflète une expertise authentique et une compréhension personnelle. Si vous avez des questions ou souhaitez discuter de votre problème de codage avec une IA, pensez à utiliser le chat IA de la Communauté des développeurs.

Utilisation acceptable de l'IA

Nous reconnaissons que les outils d'IA peuvent contribuer à la correction et à la clarté. Vous pouvez les utiliser des manières suivantes :

  • Pour corriger la grammaire, l'orthographe et la ponctuation.
  • Pour améliorer la structure et la lisibilité des phrases.
  • Pour reformuler votre propre contenu plus clairement.
  • En tant qu'assistant de rédaction, et non comme source d'idées ou d'explications techniques.

Exemple : Rédiger un article sur l'utilisation de la classe %JSON.Adaptor et utiliser ChatGPT pour améliorer la fluidité et la clarté des phrases.

Interdictions

Afin de protéger l'intégrité de notre plateforme, les utilisations suivantes de contenu généré par l'IA sont interdites :

  • Rédaction d'articles complets (ou de parties substantielles) à l'aide de ChatGPT, Copilot, Gemini ou d'autres LLMs.
  • Publication d'explications, de tutoriels ou de descriptions de code générés par l'IA comme s'il s'agissait de votre propre contribution.
  • Soumission de contenu principalement généré par l'IA avec seulement quelques modifications ou révisions minimales.

Exemple : Demander à ChatGPT de rédiger un long article soulignant les avantages de la norme FHIR et publier la réponse comme étant votre propre travail.

Transparence

Afin de maintenir un contenu de haute qualité et de préserver la confiance de la communauté, vous devez vous efforcer d'être transparent concernant l'utilisation de l'IA générative. Plus précisément :

  • Si l'IA a contribué de manière substantielle à la rédaction, même en cas de modification, vous devez le mentionner dans une note à la fin de l'article.
  • Vous n'êtes pas tenu de divulguer toute utilisation éditoriale mineure de l'IA (par exemple, corrections grammaticales ou modifications de clarté).

Exemple : Cet article a été légèrement modifié avec ChatGPT pour des raisons de grammaire et de lisibilité.

Concours de programmation

L’IA générative peut être un outil puissant pour accélérer la programmation et le développement, mais tout comme les codeurs humains, elle peut commettre des erreurs. Les assistants de codage (par exemple, Cursor, Windsurf) et autres produits d’IA générative peuvent être utilisés pour développer des applications à soumettre à un concours de programmation, conformément aux directives ci-dessus.

De plus, les participants au concours sont tenus de s’assurer que leur candidature répond à tous les critères du concours et représente leur propre expertise. Les soumissions qui exploitent l’IA générative dans leur production sont soumises aux mêmes normes de qualité que le code entièrement rédigé par des humains.

Conséquences d’une mauvaise utilisation

Nous nous réservons le droit de rejeter ou de supprimer des articles ou de disqualifier les soumissions au concours qui ne respectent pas ces principes. Des violations répétées peuvent entraîner des restrictions des droits de publication.

Pourquoi est-ce important ?

L’IA peut être un assistant utile, mais elle ne peut pas remplacer votre point de vue. Ce qui fait la valeur d'un article technique, c'est votre réflexion, votre expérience et votre compréhension. C'est ce que nous souhaitons mettre en avant et soutenir au sein de notre communauté.

Faites entendre votre voix. Utilisez les outils de manière responsable.

1 Comment
Discussão (1)2
Entre ou crie uma conta para continuar