Socket.join

Programovacie jazyky, rady, poradňa...
mnichovcan
Medium Expert
Medium Expert
Príspevky: 97
Registrovaný: 17 mar 2011, 23:03

Socket.join

Príspevok od používateľa mnichovcan »

Zdravim

mám problém zo socketom.

Kód: Vybrať všetko




io.on('connection',function(socket){

		socket.on('serverConect',function(data){

        socket.leave(socket.id);	
        socket.id = data.id;
        socket.join(socket.id);  <- Tu to funguje v pohode ked si dám console.log(socket.rooms) vidím že je v roomke .
        socket.data = {name:data.name , avatar:data.avatar};


		});
		//*******************Server Connect/************************

	
		socket.on('connToGame',function(gameName){

		
			gameCont.connectToGame(gameName,socket);
			
		
			
		});



		 socket.on('disconnect', function () {

 			gameCont.disconectFromGame(socket);

 		});

});


Ale ak použijem socket.join v nejakej funkcii napr

Kód: Vybrať všetko


function connectPlayer(socket){


		if(  (playersCount < max) &&  inRoom(socket) != false )  {

				socket.join(roomName);  // <- tu už to nefunguje roomName mam definovú aj ked dám socket.join("nieco"); tak  to tiež nejde.

				socket.emit('joined',{room:roomName,con:true});
				players.push({id:socket.id,name:socket.data.name,avatar:socket.data.avatar});
	 			playersCount = players.length;
	 			io.to(roomName).emit('pJoined',players);
	 			console.log(socket.rooms);
	 			console.log(roomName);
	 			console.log(players);
		//	socket.emit('pJoined',players);

		}

	}

Za tou chybou dalej socket použivam v pohode akurat to nejde ked chcem poslať niečo do konkrétnej room ale to vyplýva s toho joinu.

socket.emit ide v pohode aj socket.rooms aj socket.data.name . Kedže socket.emit aj socket.rooms idu tak ten handler tam nechýba . Nepíše to ani žiadnu chybu vôbec neviem čo stým. Na stackowerflow som nič nenašiel čo by pomohlo.

Tak sa spolieham aj na vašu pomoc :)

//autoeditácia príspevku (21 Máj 2016, 18:20)
Tak prišiel som na jednu mam napr tlacitko Pripojit a ked nan kliknem a vykona sa ta funkcia tak to nejoine. AK naň kliknem druhy krát tak už to joine

//autoeditácia príspevku (21 Máj 2016, 23:40)
Problem bol asi ten že ja som si ako socket.id nastavoval svoje vlastne ak som nechal to defaultne tak to ide dobre.

//autoeditácia príspevku (22 Máj 2016, 16:41)
Nebudem zakladať novu tému mám dalši problém vyzerá jednoducho ale nejak ho neviem vyriešiť :)


Kód: Vybrať všetko


function random(){

		var rnd = Math.floor((Math.random() * 3) + 0);
		var ans = require('./ansvers');

		for (var i = ans.length - 1; i >= 0; i--) {
			if( ans[i].name == ot[rnd].o ){

				ans.splice(i,1);

			}
		};

		var a = Math.floor((Math.random() * 3) + 0);



		return 0;

	}


Cele to funguje že vyberiem z ot jednu vec a v ans je taka ista tak z ans ju už nechcem vybrat kedže vyberam nahodne z ans. Tak ju z ans odstránim a vyberiem nejakú náhodne. Toto ide ale potom ked funkciu zavolám znova tak chcem aby to ans zas bolo plne teda to čo som odtiaľ odstránil aby tam zas bolo. Teraz to funguje tak že sa postupne odstrania všetky veci z ans.
AllGoneDead
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 364
Registrovaný: 27 aug 2012, 9:03
Bydlisko: košice

Re: Socket.join

Príspevok od používateľa AllGoneDead »

Vytvor si novu premennu do ktorej si skopirujes obsah.
Napísať odpoveď