Files
elton 831c2a953f Direktnachrichten kommen doch sofort an -- das Gespraech ist Echtzeit
Andreas: "dann durchsuch noch mal die foren, das kann doch nicht sein
das das niemand da draussen hat das problem." Hatte jemand, und der
entscheidende Satz stand in einem Bugreport eines anderen Projekts:
"DMs work fine."

Nachgemessen, und es stimmt:

  Direktnachricht            -> posted kommt SOFORT
  eigener Kanalbeitrag       -> posted kommt
  Kanalbeitrag eines anderen -> kommt nie

Damit ist die Lage eine voellig andere als gedacht. Mit einem Agenten zu
reden -- der Anwendungsfall, um den es Andreas ging -- laeuft in Echtzeit
ueber eine DM. Der Boden deckt nur noch Erwaehnungen in Kanaelen ab, und
das ist der Fall, bei dem 15 Sekunden niemanden stoeren.

Dabei ausserdem einen eigenen Fehler korrigiert: Ich hatte den Test
"direkt am Container, ohne Caddy" als erledigt dargestellt, obwohl das
sed dafuer fehlgeschlagen war und gegen den Proxy gemessen wurde.
Nachgeholt: ws://192.168.1.142:8065 direkt verhaelt sich genauso. Der
Proxy ist jetzt wirklich ausgeschlossen.
2026-09-01 20:54:02 +02:00

21 lines
827 B
Go

//go:build ignore
package main
import ("fmt";"net/http";"os";"time";"github.com/gorilla/websocket")
func main(){
ziel:=os.Getenv("WSURL")
c,_,err:=websocket.DefaultDialer.Dial(ziel,http.Header{})
if err!=nil{fmt.Println("dial:",err);return}
fmt.Println(" verbunden:",ziel)
c.WriteJSON(map[string]interface{}{"seq":1,"action":"authentication_challenge","data":map[string]string{"token":os.Getenv("TOK")}})
ende:=time.Now().Add(40*time.Second)
for time.Now().Before(ende){
c.SetReadDeadline(time.Now().Add(10*time.Second))
var m map[string]interface{}
if err:=c.ReadJSON(&m);err!=nil{
if ne,ok:=err.(interface{Timeout() bool});ok&&ne.Timeout(){fmt.Println(" (still)");continue}
fmt.Println(" read:",err);return
}
if e,_:=m["event"].(string);e!=""{fmt.Println(" EVENT:",e)}
}
}