see also docs
https://docs.intersystems.com/iris20251/csp/docbook/Doc.View.cls?KEY=GCSP_directives#GCSP_directives_expressionscreated with NPI
- Log in to post comments
see also docs
https://docs.intersystems.com/iris20251/csp/docbook/Doc.View.cls?KEY=GCSP_directives#GCSP_directives_expressionscreated with NPI
The correct syntax is &html < your content >
I didn't detect the closing > in your screenshot
It generates:
Write " your content "
in the resulting .int code
Just the same as it did in Caché or Ensemblecreated with NPI
My personal preference would be
You may check all the old WS examples in OEX
Hi
your code
Set WebSoc=##class(%Net.WebSocket.Client).%New(WebSocURL,cre,evl)
Just uses the Default %Net.HTTPrequest that contains url port, ....
But %New offers more
• Methode %OnNew(pURL As %String, pCredentials As %Net.WebSocket.ICredentials = $$$NULLOREF, pEventListener As %Net.WebSocket.IEventListener = $$$NULLOREF, pAcceptedProtocols As %String = "", pRequest As %Net.HttpRequest = $$$NULLOREF) als %Status
and in %Net.HTTPrequest you have a property port
https://docs.intersystems.com/iris20251/csp/documatic/%25CSP.Documatic.cls?LIBRARY=%25SYS&PRIVATE=1&CLASSNAME=%25Net.HttpRequest
I never needed it as protocol ws and wss was sufficient.
But there is no other place for a port to be assigned
You mentioned:
WebSockets are enabled on ports 80 & 443, but the code fails
Websockets work bi-directional
SO: Did you assign / map those ports also in your docker-compose ?
Docker build fails :
ERROR MESSAGE ! iris The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v3) and no specific platform was requested 0.0s ✔ Container docker-setup-1
The required Platform is not mentioned as a Prerequisite
Is it also available for amd64 processors ?
Possible workaround:
$ListToString(%DLIST(DISTINCT(REPLACE(ARCIM_Desc,'<br/>',''))),'<br/>') as "ARCIM_Desc", Details on $LISTTOSTRING
Your source seems to contain the <br/>
Try a different separator e.g. @ to verfiy it.
If it is in and you can see it, HTML tags < > might be escaped for some reason and not be
recognized but displayed as text instead
WRONG advice !
only 2 commas after 15 !
set DOB=$ZDATE(paper.PAPERDob,15,,4)
will do it
1 comma less,
4 is the 4th parameter !!
see also doc:
https://docs.intersystems.com/iris20251/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_fzdate
#; Recompute hash here now we have the lock
Set hashval=$$$hash($lb($$ClassIndexTS^%SYS.cspServer2(db),$roles)_rangelist)$ROLES of the user might also be involved in the issue
As a first step, I would check file/directory owner + protection in WINDOWS related to Studio Windows user
< DIRECTORY> is not so specific on the reasons
If you look at GitHub, you find a kind of CSS there
http://https://github.com/intersystems-community/webterminal/tree/master/src/client/scss
They might be present somewhere in your installation.
You may play with it at your own risk
again YES !
Any expansion is related to an extension of the internal mapping structure of the .DAT file
written to disk If you don't have any restrictions on disk space, you consume the related
overhead in 1 single shot at a time that you control (e.g., startup)
HMMM.
Are you sure that WS and WSS Protocol are enabled on the Webserver
https://ac1.mqtt.sx3ac.com
And any firewall in between?
In short:
Assuming you have full access to your Windows you may take this approach.
You are right, The example defines
but doesn't use it,
According to the class definition of %Net.WebSocket.Client you pass it as a parameter
in the %New() method..png)
so you code (extending my example may look like this:
set cre=##class(WSCI.CRE).%New()
#; feed whatever your credentials need
#; init connection
set ws=##class(%Net.WebSocket.Client).%New(url,cre,evl)It might be worth checking what class %Net.WebSocket.Client does with your credentials
The article https://community.intersystems.com/post/websocket-client-iris-internal
has a link to OEX https://openexchange.intersystems.com/package/IRIS-internal-WebSocket-Client
which points to code on Github that includes a Client and an Echo Server for testing
the code runs on any IRIS. Docker is just a helping platform
It would be great to get all the code from Github be published on OpenExchange
Dmitry, you are just great.
And you impressed me over and over again.
Thank you for sharing your knowledge and your passion
About 5 years back, I composed an example for a WebSockel Client
might be a starting point
Point 2. of the previous reply is definitely WRONG!
Point 4. takes that back in some way but leaves it ambiguous.
Using extended Global References (also in Class Storage Definitions)
allows access to any mounted DB if you have access rights.
A personal example:
USER>for i=1:1:5 set ^|"^^C:\InterSystems\IRIS242\mgr\nonspace"|rcc(i)=i
USER>zwrite ^|"^^C:\InterSystems\IRIS242\mgr\nonspace"|rcc
^|"^^C:\InterSystems\IRIS242\mgr\nonspace"|rcc(1)=1
^|"^^C:\InterSystems\IRIS242\mgr\nonspace"|rcc(2)=2
^|"^^C:\InterSystems\IRIS242\mgr\nonspace"|rcc(3)=3
^|"^^C:\InterSystems\IRIS242\mgr\nonspace"|rcc(4)=4
^|"^^C:\InterSystems\IRIS242\mgr\nonspace"|rcc(5)=5
USER>I learned this traditional technique 47 years ago.
And it still works fine.
straight ObjectScript
USER>if $d(^|"%SYS"|CONFIG("Namespaces"," ")) ;; position $ZR in CONFIG
USER>for set ns=$o(@$ZR) quit:ns="" zwrite ns ; list it
ns="%SYS"
ns="SAMPLES"
ns="USER"
USER>BINGO !
What about "InterSystems ObjectScript" ?
>>> short ISOS ?? 😉
An excellent experience !
thanks for sharing.
Fully agree with your suggestion of an Abstract Class.
It's in fact the modern equivalent of the old .INC approach
much more simple with 2 identic .INT routines a1 and a2
ROUTINE a1 [Type=INC]
load ;
read !,"loops=",loop,!
do t1 hang 0.5 do t2 quit
next
set t1=$zh quit
t1
set t0=$zh
for i=1:1:loop do next
write t1-t0,!
quit
t2
set t0=$zh
for i=1:1:loop do next^a2
write t1-t0,!
quit
SAMPLES>d ^a1
loops=1000000
.081626
.136785
SAMPLES>I just mean you can't do less:
the difference is even worse 40.3%
My approach was rather simple.
SUMMARY: There is a difference.
But I wouldn't bend a little finger to attack it. (not even on PDP-11)
This is nothing where performance comes from.