11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Ciro,


Il problema che la Chat è accessibile a tutti, ed è per questo motivo che ho creato la dicitura sopra descritta con la @... quindi dovrei creare una corrispondenza di ConnectionId?

No, come ti dicevo, nell'OnConnected aggiungi l'utente ad un gruppo che porta il suo nome e in cui ci sarà soltanto lui.
Poi bisogna capire se vuoi realizzare qualcosa di più complesso, tipo chat riservate a due persone, in modo che possano continuare a scambiarsi messaggi in privato senza usare @.


Diciamo che stavo utilizzando l'update Panel per questo usavo il submit, ma sto cercando di cambiare il tutto attraverso la chiamata con un web method

Ok, ma a cosa ti serve invocare il web method. Sto vedendo il codice che usi per inviare la richiesta ajax: perché invii una richiesta a Chat.aspx/ChatSend e poi una ulteriore invocazione via SignalR al metodo SendMessage. A che ti serve questo doppio invio di dati?

data: "{ _username: '" + $("#HiddenField1").val() + "', testo: '" + $("#TxtMessaggio").val() + "', Utente: " + <%=User.Identity.Name%> + "}",

ATTENZIONE qui che stai permettendo agli utenti di impersonare qualcun altro!! Se ti cambio il valore di HiddenField1 (ed è assolutamente fattibile usando gli strumenti di sviluppo del browser), posso inviare messaggi a nomi di altre persone.
Lo username deve essere impostato lato server, come nel mio esempio. Riguardati la funzione SendMessage.


mi viene restituito questo errore: Uncaught TypeError: $.connection.chatHub.server.sendMessage is not a function

Non so, questo sembra ok.


Inoltre ti faccio vedere come ho impostato nel btnInvia la ricerca del messaggio privato:

Con l'expressione regolare sarebbe tutto molto più compatto e dovresti sperimentare per imparare ad usarle. In alternativa, puoi anche cavartela con l'algoritmo che hai creato tu.
Le stringhe hanno un metodo StartsWith che ti permette di verificare che una stringa inizi con un determinato carattere (o una serie di caratteri). Nel tuo caso la puoi usare in sostituzione dell'IndexOf e del Contains.

If testo.StartsWith("@") Then
...
End If


ciao,
Moreno
Modificato da BrightSoul il 29 gennaio 2018 21.21 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.