1 | # What it does
|
2 |
|
3 | ###### Ability to create room variables for people that use socket.io. It was kind of strange to see that there was no room variable solution for socket.io out of the box. ######
|
4 |
|
5 |
|
6 | # How does it look?
|
7 |
|
8 | ![roomdata.gif](https://bitbucket.org/repo/EaxM4K/images/4033599328-roomdata.gif)
|
9 |
|
10 | var roomdata = require('roomdata'),
|
11 | io.sockets.on('connection', function (socket) {
|
12 | // Lets join/create a room:
|
13 | roomdata.joinRoom(socket, "testroom"); // You do not have to create a room before joining it
|
14 |
|
15 | // You can define room variables:
|
16 | roomdata.set(socket, "gamedata", {x:4, y:20}); // Creates a room variable
|
17 | roomdata.set(socket, "timesdied", 5); // Can also be a number,string,boolean etc
|
18 |
|
19 | // Then on every socket that has joined the same room you can retrieve the values:
|
20 | console.log(roomdata.get(socket, "gamedata")); // Prints: { x: 4, y: 20 }
|
21 | console.log(roomdata.get(socket, "gamedata").y); // Prints: 20
|
22 |
|
23 | // Incrementing timesdied
|
24 | var inc = roomdata.get(socket, "timesdied") + 10;
|
25 | roomdata.set(socket, "timesdied", inc);
|
26 | console.log(roomdata.get(socket, "timesdied")); // Prints: 15
|
27 |
|
28 | // Standard variables when a room is created:
|
29 | console.log(roomdata.get(socket, "users")); // Prints: array full of current users in room (socket.id)
|
30 | console.log(roomdata.get(socket, "room")); // Prints: current room name this socket is in
|
31 | console.log(roomdata.get(socket, "owner")); // Prints: the socket.id that created the room
|
32 |
|
33 | // Important: It is not yet possible to use get and set if a socket is in two rooms at once!
|
34 |
|
35 | // Make sure to define a on disconnect handler and call roomdata.leaveRoom with the socket as parameter or roomdata.get(socket, "users") will not function well!
|
36 | socket.on('disconnect', function() {
|
37 | roomdata.leaveRoom(socket);
|
38 | });
|
39 | });
|
40 | ![Example1](http://s14.postimg.org/7j43w0b81/roomdata1.png)
|
41 |
|
42 |
|
43 | # How do I use it?
|
44 |
|
45 | ## 1. Start by installing the package:
|
46 | npm install roomdata
|
47 |
|
48 | ## 2. Put this in your nodejs server file:
|
49 |
|
50 | var roomdata = require('roomdata');
|
51 |
|
52 | ## 3. Now you can do stuff like:
|
53 |
|
54 | roomdata.joinRoom(socket, "testroom"); // if you want to use roomdata features you will have to replace your socket.join with this line
|
55 |
|
56 | roomdata.set(socket, "gamedata", {x:4, y:20});
|
57 |
|
58 | console.log(roomdata.get(socket, "gamedata")); // Prints: { x: 4, y: 20 }
|
59 | console.log(roomdata.get(socket, "gamedata").y); // Prints: 20
|
60 |
|
61 | ## 4. Make sure to define a disconnect handler and call roomdata.leaveRoom with socket as parameter
|
62 |
|
63 | socket.on('disconnect', function() {
|
64 | roomdata.leaveRoom(socket); // if you want to use roomdata features you will have to replace your socket.leave with this line
|
65 | });
|
66 |
|
67 | ## 5. Make sure to replace existing socket.join and socket.leave in your project
|
68 |
|
69 | Change all your socket.join and socket.leave to roomdata.joinRoom and roomdata.leaveRoom if you want to use the roomdata features.
|
70 |
|
71 | # Contact
|
72 | You can contact me at specamps@gmail.com
|
73 |
|
74 |
|