[英]socket.io-client connecting, but not emitting
我正在使用socket.io-client和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');
});
我添加了一個錯誤事件,如果與服務器的連接失敗,它將關閉客戶端,所以我知道它的連接,感謝您的幫助,我已經對該主題進行了研究,並嘗試了許多其他方法,但無濟於事。
另外,連接是在提交數據之后進行的,而不是在啟動客戶端代碼時進行的,這可能是什么原因引起的?
如果要在客戶端和服務器之間發送事件,則必須:
從客戶端向服務器發送事件A,服務器必須監聽A事件。
如果要將事件B從服務器發送到客戶端,則客戶端必須監聽事件B。
除了代碼中的所有其他內容,我看不到客戶端在哪里監聽“聊天消息”事件。
Socket.io基於這些所謂的“事件”。 下面的代碼將向服務器發送'my_event'事件,所傳輸的數據將成為對象{a:1}。
socket.emit('my_event', { a: 1 });
如果要在服務器上處理此事件,則必須偵聽它:
socket.on('my_event', function(data) {
// data is the object { a: 1 }
// do stuff..
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.