Czesc, bawie sie z socket.io i chcialem sobie napisac prosta rzecz, a mianowicie na stronie glownej "/" pobieram nazwe uzytkownika, wysylam do socketu, socket odbiera i wysyla znow do frontu, ale tym razem w "/chat", i wysylajac wiadomosci mam uzytkownika pobranego z "/" oraz wiadomosci z "/chat", ale problem jest taki, ze jak zmieniam urla z "/", na "/chat", to niestety ale tworzy sie nowy connect, bo sprawdzam to w konsoli basha. Wiec zawsze jak zmienie urla to robi sie disconnect, a pozniej connect, wiec pewnie dlatego on nie widzi tego pobrania, nie wiem. Czy moglby mi ktos pomoc jak zrobic sesje io na wielu stronach?
Kod serwera wyglada tak:
var express = require('express');
var routes = require('./routes');
var http = require('http');
var app = express(),
server = http.createServer(app) ,
io = require('socket.io').listen(server);
app.set('view engine', 'jade');
//app.set('view engine', 'html');
app.use('/public', express.static(__dirname + '/public'));
app.get('/', routes.home);
app.get('/chat', routes.chat);
io.on('connection', function(socket){
//console connection
console.log('user connect');
//socket on message
socket.on('get message', function(msg){
io.emit('send message', msg);
});
//console disconnect
socket.on('disconnect', function(msg){
console.log('user disconnected');
});
//get user
socket.on('user', function(user){
io.emit('user', user)
})
});
server.listen(3000,function(){
console.log("Server start at port: 3000");
});
A frontu tak
var socket = io();
// get name from home.jade
$('#bname').on('click', function(){
socket.emit('user', $('#name').val());
});
$('form').submit(function(){
socket.emit('get message', $('#m').val());
socket.on('user', function(user){
$('#messages').append($('<li>').text(user));
});
$('#m').val('');
console.log(user);
return false;
});
socket.on('send message', function(msg){
$('#messages').append($('<li>').text(msg));
});
Wiadomosci w "/chat" przychodza wiadomo, ale uzytkownik sie nie pokazuje, bo tak jak juz mowilem, konsola pokazuje ze co zmiane urla socket laduje sie na nowo.
W "/" mam zwyklego a hrefa, ktory ma sciezke do "/chat".