栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Node.js和Socket.io创建空间

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Node.js和Socket.io创建空间

这可能会有所帮助:

server.js(没有有关redis的代码)

var usernames = {};var rooms = ['Lobby'];io.sockets.on('connection', function(socket) {    socket.on('adduser', function(username) {        socket.username = username;        socket.room = 'Lobby';        usernames[username] = username;        socket.join('Lobby');        socket.emit('updatechat', 'SERVER', 'you have connected to Lobby');        socket.broadcast.to('Lobby').emit('updatechat', 'SERVER', username + ' has connected to this room');        socket.emit('updaterooms', rooms, 'Lobby');    });    socket.on('create', function(room) {        rooms.push(room);        socket.emit('updaterooms', rooms, socket.room);    });    socket.on('sendchat', function(data) {        io.sockets["in"](socket.room).emit('updatechat', socket.username, data);    });    socket.on('switchRoom', function(newroom) {        var oldroom;        oldroom = socket.room;        socket.leave(socket.room);        socket.join(newroom);        socket.emit('updatechat', 'SERVER', 'you have connected to ' + newroom);        socket.broadcast.to(oldroom).emit('updatechat', 'SERVER', socket.username + ' has left this room');        socket.room = newroom;        socket.broadcast.to(newroom).emit('updatechat', 'SERVER', socket.username + ' has joined this room');        socket.emit('updaterooms', rooms, newroom);    });    socket.on('disconnect', function() {        delete usernames[socket.username];        io.sockets.emit('updateusers', usernames);        socket.broadcast.emit('updatechat', 'SERVER', socket.username + ' has disconnected');        socket.leave(socket.room);    }); });

index.html

<head>... // your other pre<script>var socket = io.connect('http://localhost:8000');socket.on('connect', function(){    socket.emit('adduser', prompt("What's your name: "));});socket.on('updatechat', function (username, data) {    $('#conversation').append('<b>'+ username + ':</b> ' + data + '<br>');});socket.on('updaterooms', function (rooms, current_room) {    $('#rooms').empty();    $.each(rooms, function(key, value) {        if(value == current_room){ $('#rooms').append('<div>' + value + '</div>');        }        else { $('#rooms').append('<div><a href="#" onclick="switchRoom(''+value+'')">' + value + '</a></div>');        }    });});function switchRoom(room){    socket.emit('switchRoom', room);}$(function(){    $('#datasend').click( function() {        var message = $('#data').val();        $('#data').val('');        socket.emit('sendchat', message);    });    $('#data').keypress(function(e) {        if(e.which == 13) { $(this).blur(); $('#datasend').focus().click();        }    });    $('#roombutton').click(function(){        var name = $('#roomname').val();        $('#roomname').val('');        socket.emit('create', name)    });});</script></head><body>    <div >        <b>ROOMS</b>        <div id="rooms"></div>    </div>    <div >        <div id="conversation"></div>        <input id="data"  />        <input type="button" id="datasend" value="send" />    </div>   <div >       <div id="room creation"></div>       <input id="roomname"  />        <input type="button" id="roombutton" value="create room" />   </div>   ... // the rest of your page</body>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436780.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号