簡體   English   中英

如何將用戶名添加到我的socket.io/node.js/Express Generator聊天室

[英]How can I add usernames to my socket.io/node.js/Express generator chat

如何為每個通過快速生成器(ejs)聊天加入聊天的人添加用戶名? 我已經能夠設置套接字io,但是我正在努力添加不同的用戶名。

index.ejs:

 <!doctype html> <html> <head> <title>Socket.IO chat</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } /*body { font: 13px Helvetica, Arial; }*/ /*body { font: 13px Helvetica, Arial; background-color: red;}*/ #sendme { background: #000; padding: 3px; position: fixed; bottom: 0; width: 100%; } #sendme input { border: 0; padding: 10px; width: 90%; margin-right: .5%; } #sendme button { width: 9%; background: rgb(130, 224, 255); border: none; padding: 10px; } #messages { list-style-type: none; margin: 0; padding: 0; } #messages li { padding: 5px 10px; } #messages li:nth-child(odd) { background: #eee; } </style> </head> <body> <ul id="messages"></ul> <form id="sendme" action=""> <input id="m" autocomplete="off" /><button>Send</button> </form> <div class="span5 offset2" id="login"> <form class="form-inline"> <input type="text" class="input-small" placeholder="Your name" id="name"> <input type="button" name="join" id="join" value="Join" class="btn btn-primary"> </form> <script src="/socket.io/socket.io.js"></script> <script src="http://code.jquery.com/jquery-1.11.1.js"></script> <script> var socket = io(); $("#sendme").submit(function() { socket.emit('chat message', $('#m').val()); $('#m').val(''); return false; }); socket.on('chat message', function(msg) { $('#messages').append($('<li>').text(msg)); }); </script> </body> </html> 

index.js:

 var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); module.exports = function(io) { var app = require('express'); //var router = app.Router(); io.on('connection', function(socket) { console.log('a user connected'); io.emit('chat message', "A user connected."); socket.on('chat message', function(msg) { console.log('message: ' + msg); io.emit('chat message', msg); }); socket.on('disconnect', function() { console.log('user disconnected'); io.emit('chat message', "A user disconnected."); }); }); return router; } 

連接時會觸發事件連接 ,您可以並且應該將socket.on('connect')添加到index.html文件中,然后可以在其中發送用戶名:

index.html

socket.on('connect', function() {
  socket.emit('newuser', 'Marchhill');
};

套接字是對象,因此您可以在index.js中添加socket.username:

index.js

socket.on('newuser', function(username) {
  socket.username = username;
  console.log( socket.username + ' has connected');
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM