DefinitelyTyped/types/socket.io.users/socket.io.users-tests.ts
Ben Salili-James 3ddcd3ee3e Use gender-neutral pronouns (#39053)
* Use gender-neutral pronouns

* Minor tweaks to comments

* Remove 'their' artifact

* Revert Dojo (failing package)
2019-10-14 08:58:56 -07:00

55 lines
1.6 KiB
TypeScript

var express = require('express');
var app = express();
var httpServer = require('http').createServer(app);
var io = require('socket.io')(httpServer);
import ioUsers = require("socket.io.users");
ioUsers.Session(app, {
"secret": "socket.io.users secret test",
"resave": true,
"saveUninitialized": true
});
io.use(ioUsers.Middleware());
var users = ioUsers.Users.of("/");
var userDisconnected = (user: ioUsers.User) => {
console.log(user.get("username") + " has disconnected from all web browser windows or/and tabs");
}
var setUsername = (user: ioUsers.User, data: any) => {
console.log(user.ip + ' is for first time visiting our site. They want ' + data.username + ' for username');
user.set("username", data.username);
}
var joinRoom = (user: ioUsers.User, roomToJoin: string) => {
console.log(user.get("username") + ' joined to ' + roomToJoin);
}
var leaveRoom = (user: ioUsers.User, roomToJoin: string) => {
console.log(user.get("username") + ' joined to ' + roomToJoin);
}
var sendMessage = (user: ioUsers.User, data: any) => {
console.log(user.get("username") + 'send ' + data.content + ' to room: ' + data.room);
}
users.on('disconnected', userDisconnected);
users.on('set username', setUsername);
users.on('join room', joinRoom); //notify other = user joined room or (GLOBAL) room created.
users.on('leave room', leaveRoom); //notify other = user left room or (GLOBAL) room removed.
users.on("send message", sendMessage); //notify other = receive message.
httpServer.on('uncaughtException', function(err: any) {
console.log(err);
})
var httpPort = 80;
httpServer.listen(httpPort, function() {
console.log("Server is running on " + httpPort);
});