-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.js
105 lines (80 loc) · 2.35 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/*
var mongodb = require ('mongodb');
var server= new mongodb.Server("127.0.0.1",27017,{});
var dbTest= new mongodb.Db('ejemplo',server,{});
dbTest.open(function (error, client) {
// body...
if (error) throw error;
var collection= new mongodb.Collection(client, 'ciudades');
collection.find({'nombre':'Mexico'}).toArray(function (err, docs) {
console.dir(docs);
// body...
});
});
*/
var http = require ('http'),
io = require('socket.io'),
fs= require('fs'),
MongoClient= require('mongodb').MongoClient,
base= require('mongodb').Server
var host ='localhost';
var puertobase= 27017;
conexiondemensaje=function (coleccion) {
// body...
this.ingresar=function (coleccion, usuario, llamada) {
// body...
var datos={
"usuario" : usuario,
"mensaje" : mensaje
};
coleccion.insert(datos, function (err, docinsertado) {
// body...
llamada (null, docinsertado);
});
}
}
canal = function () { }
canal.connect=function (host, puertobase, llamada){
var cliente = new MongoClient(new base(host, puertobase, {}), {"w": 1});
cliente.open(function (err, mongoclient){
var db =cliente.db("chat");
db.createCollection('mensajes', function(err, collection) {
// body...
llamada(new conexiondemensaje(coleccion));
}) ;
}) ;
}
canal.connect(host, puertobase, function (conexiondemensaje) {
// body...
server = http.createServer(function(req, res) {
// body...
res.writeHead(200, {'Content-Type': 'text/html'});
var salida = fs.readFileSync('./index.html','utf8');
res.end(salida);
});
var socket = io.listen(server);
socket.on('connection',function (cliente) {
// body...
cliente.on('establecerusuario', function (usuario) {
// body...
cliente.set('nombreusuario', usuario.nombreusuario, function () {
console.log("ingreso el usuario = "+usuario.nombreusuario);
// body...
});
});
cliente.on('mensaje',function (msj) {
cliente.get('nombreusuario', function (err, usuario) {
// body...
conexiondemensaje.ingresar(msj.mensaje, usuario, function (err){
cliente.broadcast.emit("mensaje", {
"usuario": usuario,
"mensaje": msj.mensaje
});
console.log("mensaje de :" + usuario+"insertado correctamente");
});
});
});
});
console.log("servidor corriendo en puerto 8080");
server.listen(8080);
});