Thread Object global Verfügbar machen (WebSocket+jQuery) (5 answers)
Opened by styx-cc at 2018-05-16 17:49

styx-cc
 2018-05-16 19:22
#188371 #188371
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Quote
Du hast davon mehrere, warum, wozu!?

Gute Frage, ich war der Meinung es so hier kopiert zu haben, allerdings ist es dort ebenfalls nur ein Mal vorhanden.

Den Part habe ich ausgebessert:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
  <script>
function WebSocketAuth(ws) {
this.wss = ws;

this.send2 = function(msg) {
var d = new Date();
var nonce = d.getTime();

var secret = 'secret';
var sig = sha256(secret + nonce);

var json = JSON.stringify({
"message":msg,
"nonce":nonce,
"sig":sig
});

this.wss.send(json);
};
}

var wss = new WebSocket('ws://181.174.166.70:3000/echo');
var wsa = new WebSocketAuth( wss );

$(function () {
$('#msg').focus();

var log = function (text) {
$('#log').val( $('#log').val() + text + "\n");
};

wss.onopen = function () {
log('Connection opened.');
};

wss.onmessage = function (msg) {
var res = JSON.parse(msg.data);
log('[' + res.hms + '] ' + res.text);
};

// wsa.send2( "test" );

$('#msg').keydown(function (e) {
if (e.keyCode == 13 && $('#msg').val()) {
var msg = $('#msg').val();
wsa.send2( msg );
$('#msg').val('');
}
});
});
</script>


Die Objekte werden erstellt, Sie werden ja über das input auch erfolgreich benutzt (Zeile 46), die auskommentierte Zeile 41 hingegen funktioniert nicht.
Ich vermute ja was in Richtung Closure und Scope oder so, stehe aber auf dem Schlauch.

Hier kann man sich das auch angucken, ich würde beim Aufrufen der Seite erwarten, dass in der textarea 'test' nach dem 'Connection opened' steht.
http://181.174.166.70/
Last edited: 2018-05-16 19:32:45 +0200 (CEST)
Pörl.

View full thread Object global Verfügbar machen (WebSocket+jQuery)