0
我正在使用socket.io-client和socket.io在終端上製作一個小加密的聊天應用程序。客戶端能夠連接到服務器,但輸入時不會發出用戶名。socket.io-客戶端連接,但不發光
客戶:
var socket = require('socket.io-client')('http://127.0.0.1:3000');
socket.on('connect_error', function(){
console.log('Failed to establish a connection to the servers, or lost connection');
return process.exit();
});
var prompt = require("prompt-sync")()
var news = "Add news: Will be from database. "
var username = prompt("Username>: ")
console.log("Hold on a sec, just checking that!")
console.log("")
if (typeof username === "defined"){
socket.emit('user-name', {usr: 'username'})
}
socket.on('user-name-good',function(socket){
console.log("Okay! Your username looks good, we just require your password")
console.log("If you chose to have no password, please press enter with out pressing space!")
var password = prompt("Password>: ")
if (typeof password !== "defined"){
console.log("Please provide a password!")
return password = prompt("Username>: ")
}
socket.on('user-name-fail',function(socket){
console.log("Sorry, we could not find, "+username+""+"Please register on the website, or, if you have registered ")
return process.exit()
})
}
)
服務器代碼,是基於代碼socket.io聊天例如:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
socket.on('chat message', function(msg){
io.emit('chat message', msg);
});
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
我添加了一個錯誤事件,該關閉客戶端,如果涉及的連接服務器故障,所以我知道它的連接,任何幫助表示讚賞,我已經做了這個主題的研究,並嘗試了很多其他方法,但無濟於事。
此外,連接是在您提交數據後進行的,而不是在客戶端代碼啓動時發生,可能會導致這種情況?
我注重的登錄,也沒怎麼去聊天消息。 – FlerrElectronics
如何使用從客戶端發送到服務器的數據? (a ===「foo」){console.log(「a ===」foo「}。 – FlerrElectronics
在客戶端寫下如下內容:socket.emit('eventA','foo');以及在服務器端添加:socket.on('eventA',function(data){console.log(data);});它會在服務器的控制檯上顯示'foo'字符串。如果你檢查typeof用戶名===「defined」..它永遠不會工作,因爲typeof關鍵字不會返回'defined'。提示會爲用戶名變量分配一個字符串,所以你可以簡單地檢查:if(username){// do stuff ..} – Azamantes