Olen nyt muutaman päivän hakannut päätä seinään, kun yksinkertainen WebSocket-koodi ei toimi. Olen rajannut ongelman seuraavaan:
var socket = io.connect("localhost:5000"); // Yhteys muodostuu niin kuin pitäisi socket.on("message", function(message) { console.log("Message received from server: " + message); }); // Palvelimelta saadut viestit tulostuu konsoliin kuten pitäisi socket.emit("message", "Testing client-side messaging"); // Palvelin saa viestin ja tulostaa kuten pitäisi $("#painike").click(function() { console.log("Painike painettu"); // Tulostuu konsoliin socket.emit("message", "Painike painettu"); // EI PERKELE TOIMI! });
Painike on tällä hetkellä vain:
<button type="button" id="painike">Painike</button>
Yhdessä välissä oli kiinnostava ilmiö: tein omat painikkeet yhteyden muodostamiselle sekä sulkemiselle. Emit()-painike ei toiminut silloinkaan, paitsi jos suljin yhteyden, sitten painoin emit()-painiketta ja käynnistin yhteyden uudelleen. Tällöin jostain syystä palvelin sai viestin.
Lisäys: Kävi mielessä ongelman olevan tuon socketin scope, mutta ymmärtääkseni painikkeen koodi pääsee siihen käsiksi. En kuitenkaan ymmärrä Javascriptin päälle niin paljon, että olisin varma asiasta.
Muuttuja socket
kyllä näkyy funktion sisälle, joten se ei ole ongelma.
Aihe on jo aika vanha, joten et voi enää vastata siihen.