Italian Websocket - UpgradeRequest.RemoteAddress

udg

Expert
Licensed User
Longtime User
Ciao. Mi dispiace, ma non ho avuto modo di utilizzarlo.
Lo scrivo solo per scrupolo: se stai contattando un server remoto da un client sulla tua LAN, direi sia normale che il server veda l'IP del router e non quello del client.
 

sirjo66

Well-Known Member
Licensed User
Longtime User
sinceramente non ci ho capito molto

il comando di cui parli viene eseguito sul server o sul client ??

server e client sono nella stessa rete LAN oppure passi attraverso internet ???

Sergio
 

LucaMs

Expert
Licensed User
Longtime User
Mi sa che ho posto male la domanda, sorry :)

E' l'oggetto websocket sul mio server b4j che teoricamente dovrebbe restituirmi, tramite quel metodo, l'IP del client (sempre websocket, ovviamente, nell'app) e invece mi restituisce l'IP esterno del mio router.

Se non ricordo male funzionava, mooolto tempo fà, ma non ne sono sicuro; di sicuro oggi mi fa quello "scherzo"

Ah, il client non è sulla mia LAN, ovviamente.
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Forse ho capito dove sia la MAGAGNA o_O.

Devo ancora provare ma l'unico punto critico che potrebbe "interferire" dev'essere il servizio che uso per "mantenere fisso l'IP del router" (beh, mi avete capito; uso Duck DNS).

Proverocci e farovvi sapere (magari non vi interessa direttamente o in questo momento, ma non si sa mai).
 

LucaMs

Expert
Licensed User
Longtime User
Cmq, pare che il problema non sia Duck DNS, perché per prova sul client ho messo direttamente l'indirizzo IP (WAN) del mio router e ugualmente ricevo... questo stesso indirizzo anziché quello del client (app, da rete esterna... proprio da altra città, per essere chiari :D)
 

udg

Expert
Licensed User
Longtime User
E' come se il tuo router faccia da proxy nei confronti degli apparati attivi sulla rete interna. Quindi questi ultimi ricevono le richieste (apparentemente) dal proxy che poi le gira verso il richiedente originario (IP della rete esterna).
Prova a guardare nella configurazione del router.
Un'altra prova potrebbe essere quella di attivare un server ridotto all'osso sul cellulare, connettere il cellulare alla rete del provider (quindi extra WLAN) e lasciare che il client remoto contatti il server; in tal caso dovresti ricevere l'IP desiderato. Se ciò si verifica, allora affronti il caso proxy di cui sopra.
 

LucaMs

Expert
Licensed User
Longtime User
Nun c'ho capito 'na mazza ma fa lo stesso :p

Cmq, ho provato la chat websocket d'esempio di Erel (pulendo tutto il resto, 'na faticaccia :D): stesso risultato.

Quindi:

o è la libreria jServer

o qualcosa nel mio router.

Non ho rete dati sul cell, se è questo che intendevi con la seconda prova.

Proxy nel router? Se anche fosse non penso che dovrei metterci le mani, essendo... mani molto limitate in questo campo
 

LucaMs

Expert
Licensed User
Longtime User
Schiaffo qui la soluzione ad un problema che avevo due anni e mezzo fà, sempre relativo ai websocket server, anche se è leggermente... OT!

A volte, apparentemente senza motivo, la prima connessione tra client e server generava un errore. Il client iniziava la connessione (come è normale che sia), l'evento Connected del websocket veniva eseguito ed a quel punto il client inviava i dati per l'autenticazione.

Sembrava tutto normale: evento Connected, sono connesso, invio i dati; invece a quel punto il websocket del server potrebbe non essere già pronto a riceverli, addirittura sembra che non fosse stato nemmeno ancora creato (l'errore sul server era di tipo Null object).

La soluzione è di fare SEMPRE in modo che i primi dati trasmessi siano quelli del server verso il client! Insomma, il server deve sempre dare l'ok al client prima che questo invii dati (questo solo appena connessi, ovviamente).
 

LucaMs

Expert
Licensed User
Longtime User
Magari quel metodo non funziona proprio: qualcuno l'avrà testato?

Dal forum "internazionale":
Just tried logging into my app from my phone, and UpgradeRequest.RemoteAddress returns my phone IP.

Dove sarà la magagna? Possibile che sia dovuta al mio provider (visto che avevo problemi pure con la porta 80, ho dovuto mappare anche questa, cosa che in passato non facevo... mi pare!).

Cmq, o è quello o qualche impostazione sul router, ma su questo, sempre in passato, non ho dovuto fare altro che il portforwarding.

:(
 
Last edited:
Top