新手,做了一个很酱油的登录页面。 点击按钮,通过SOCKET向服务器发送信号,服务器验证信号后,会把帐号密码发给登录页面用于比对。 问题出现:通过CMD提供的信息,服务器已经把信息发出去了,可是页面上收不到。 iosocket.on(‘connect’),这个是有效的,因为每次连上服务器,页面会显示“连接” iosocket.on(‘dengluzh’)和iosocket.on(‘denglumm’),这两个收不到服务器发出的信息,因为预设的几个标记都没显示,如“ZH中断”; 我感觉自己的写法没问题,因为这个页面的代码,是我从同一应用下另一个页面上面直接搬过来的,只是换了“信道”罢了。而且那个页面完全正常,Dreamweaver也没报错,运行时服务器也没报错,就是收不到。 现在有点怀疑,会不会是iosocket.on(‘信道’),同一时间能支持的信道数量有限? 自己用同一种方法做出两种结果,相当无语,求帮助 下面是页面对应部分代码:
var iosocket = io.connect();
var zh = 'ceshizhuanyongkouling-zhanghao' ;
var mm = 'ceshizhuanyongkouling-mima';
iosocket.on('connect',function(){
$('#zhuangtai').append('<li>连接</li>');
iosocket.on('dengluzh', function(dengluzh) {
$('#zhuangtai').append($('<li></li>').text(dengluzh));
zh = dengluzh;
$('#zhuangtai').append('<li>ZH中断</li>');
});
iosocket.on('denglumm', function(denglumm) {
$('#zhuangtai').append($('<li></li>').text(denglumm));
mm = denglumm;
$('#zhuangtai').append('<li>MM中断</li>');
if((($('#username').val())==(zh))&&(($('#password').val())==(mm))){
$('#zhuangtai').append('<li>登录成功</li>');
alert("登录成功");
window.location="jieshou.html";
}else{$('#zhuangtai').append('<li>已停止工作</li>');}
下面是服务器端对应部分代码:
else if(jsmsg == 'ceshizhuanyongkouling-denglu'){
console.log('收到信号:',jsmsg);
.........访问数据库并取得帐号密码...........
for(var i=0; i<results.length; i++){
var firstResult = results[i];
console.log('id: ' + firstResult['id']+' username: ' + firstResult['username']);
msgzh = firstResult['username'];
socket.broadcast.emit('dengluzh',msgzh);
msgmm = firstResult['password'];
socket.broadcast.emit('denglumm',msgmm);
console.log('发送数据:', msgzh,msgmm);
}