Subversion Repositories HomeAutomation

Rev

Rev 1959 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 1959 Rev 1962
1
 
1
 
2
var Socket_Connections = {};
2
var Socket_Connections = {};
3
 
3
 
4
var SOCKET_STATE_CONNECTED      = 0x00;
4
var SOCKET_STATE_CONNECTED      = 0x00;
5
var SOCKET_STATE_DISCONNECTED   = 0x01;
5
var SOCKET_STATE_DISCONNECTED   = 0x01;
6
var SOCKET_STATE_ACCEPTED       = 0x02;
6
var SOCKET_STATE_ACCEPTED       = 0x02;
7
 
7
 
8
function Socket_OnNewData(socket_id, data)
8
function Socket_OnNewData(socket_id, server_id, data)
9
{
9
{
-
 
10
  var id = socket_id;
-
 
11
 
-
 
12
  if (!Socket_Connections[id])
-
 
13
  {
-
 
14
    id = server_id;
-
 
15
  }
-
 
16
 
10
    if (Socket_Connections[socket_id])
17
  if (Socket_Connections[id])
11
    {
18
  {
12
        Socket_Connections[socket_id]["ondata"](socket_id, data);
19
    Socket_Connections[id]["ondata"](id, data);
13
    }
20
  }
-
 
21
 
-
 
22
  return true;
14
}
23
}
15
 
24
 
16
function Socket_OnNewState(socket_id, state)
25
function Socket_OnNewState(socket_id, server_id, state)
-
 
26
{
-
 
27
  var id = socket_id;
-
 
28
 
-
 
29
  if (!Socket_Connections[id])
-
 
30
  {
-
 
31
    id = server_id;
-
 
32
  }
-
 
33
 
-
 
34
  if (Socket_Connections[id])
17
{
35
  {
18
    if (Socket_Connections[socket_id])
36
    Socket_Connections[id]["onstate"](id, state);
-
 
37
   
-
 
38
    if (state == SOCKET_STATE_DISCONNECTED)
19
    {
39
    {
20
        Socket_Connections[socket_id]["onstate"](socket_id, state);
40
      delete Socket_Connections[id];
21
    }
41
    }
-
 
42
  }
-
 
43
 
-
 
44
  return true;
22
}
45
}
23
 
46
 
24
function Socket_StartServer(port, ondata_callback, onstate_callback)
47
function Socket_StartServer(port, ondata_callback, onstate_callback)
25
{
48
{
26
  socket_id = SocketExport_StartServer(port);
49
  socket_id = SocketExport_StartServer(port);
27
 
50
 
28
  if (socket_id > 0)
51
  if (socket_id > 0)
29
  {
52
  {
30
    Socket_Connections[socket_id] = { "ondata" : ondata_callback, "onstate" : onstate_callback };
53
    Socket_Connections[socket_id] = { "ondata" : ondata_callback, "onstate" : onstate_callback };
31
  }
54
  }
32
 
55
 
33
  return socket_id;
56
  return socket_id;
34
}
57
}
35
 
58
 
36
function Socket_Connect(address, port, ondata_callback, onstate_callback)
59
function Socket_Connect(address, port, ondata_callback, onstate_callback)
37
{
60
{
38
    socket_id = SocketExport_Connect(address, port);
61
  socket_id = SocketExport_Connect(address, port);
39
   
62
 
40
    if (socket_id > 0)
63
  if (socket_id > 0)
41
    {
64
  {
42
        Socket_Connections[socket_id] = { "ondata" : ondata_callback, "onstate" : onstate_callback };
65
    Socket_Connections[socket_id] = { "ondata" : ondata_callback, "onstate" : onstate_callback };
43
    }
66
  }
44
   
67
 
45
    return socket_id;
68
  return socket_id;
46
}
69
}
47
 
70
 
48
function Socket_StopServer(socket_id)
71
function Socket_StopServer(socket_id)
49
{
72
{
50
  SocketExport_StopServer(socket_id);
73
  SocketExport_StopServer(socket_id);
51
 
74
 
52
  delete Socket_Connections[socket_id];
75
  delete Socket_Connections[socket_id];
53
}
76
}
54
 
77
 
55
function Socket_Disconnect(socket_id)
78
function Socket_Disconnect(socket_id)
56
{
79
{
57
    SocketExport_Disconnect(socket_id);
80
  SocketExport_Disconnect(socket_id);
58
   
81
 
59
    delete Socket_Connections[socket_id];
82
  delete Socket_Connections[socket_id];
60
}
83
}
61
 
84
 
62
function Socket_Send(socket_id, data)
85
function Socket_Send(socket_id, data)
63
{
86
{
64
    SocketExport_Send(socket_id, data);
87
  SocketExport_Send(socket_id, data);
65
}
88
}
66
 
89