[NodeJS/Socket.IO] Connection Drops & Events komen niet aan

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • FireDrunk
  • Registratie: November 2002
  • Laatst online: 11-07 20:45
Ik heb de volgende code:

index.html
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
  <head>
  </head>
  <body>
    <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.7/socket.io.min.js"></script>
    <script src="client.js"></script>

    <div id="content">Empty...</div>
    <button id="refresh" data-role="button">Refresh</button>
  </body>
</html>


client.js
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
var socket = io.connect("http://localhost:8080");

socket.on('data', function(data){
  console.log(data);
});

$(function(){
  $("#refresh").click(function() {
    socket.emit('send data');
  });
});



server.js (NodeJS)
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var fs = require("fs")
var path = require("path");

var express = require('express');
var app = express();
var io = require('socket.io').listen(app.listen(8080));

io.on('connection', function(socket) {
  console.log("New WebSocket Connection!");
  io.emit("data", "Hello Client!");
});

io.on('send data', function(socket) {
  console.log("Event received!");
  io.emit("data", "Tralala!");
});

app.get('/', function(req,res){
  res.sendFile(path.join(__dirname + '/index.html'));
});

app.get('/client.js', function(req, res){
  res.sendFile(path.join(__dirname + '/client.js'));
});



Het rare is, ik zie op zowel de server als de client console dat er een nieuwe connectie is ("New Webconnection" melding en "hello client" melding).
Daarna zie ik als ik hem een poosje open laat staan of met een tweede broser connect af en toe connection drops. Daarnaast werkt het hele 'send data' event niet.

Iemand die hier licht op kan schijnen? het voorbeeld lijkt mij niet super ingewikkeld...

Even niets...


Acties:
  • 0 Henk 'm!

  • BramV
  • Registratie: Augustus 2007
  • Laatst online: 13:25
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
io.on('connection', function(socket) {
  console.log("New WebSocket Connection!");
  socket.emit("data", "Hello Client!");

  socket.on('send data', function (data) {
    socket.emit("data", "Tralala!");
  });
});

// io.on('senddata', function(socket) {
  // console.log("Event received!");
  // io.emit("data", "Tralala!");
// });

Acties:
  • 0 Henk 'm!

  • FireDrunk
  • Registratie: November 2002
  • Laatst online: 11-07 20:45
Precies op het moment dat ik het refresh event binnen zie komen van Tweakers, vind ik het zelf ook :+

Korte samenvatting, je moet de events dus binnen het connection event opvangen, en niet daarbuiten :)

Thanks BramV!

Even niets...