socket.on('test', function (call, callback){
$('.button_1').on('click', function(){
callback('button_1 is clicked');
});
$('.button_2').on('click', function(){
callback('button_2 is clicked');
});
});
我不知道在这种情况下如何设置回调值。 当我删除第一个回调(); 并保留第二个或我删除第二个并保留第一个我的代码工作正常,但当我保留他们两个代码不起作用所有
答案 0 :(得分:0)
由于callback
是您传递给on()
的函数的参数,因此on()
函数负责确定回调。
基于我对socket.io文档的阅读:它根本没有传递第二个参数。
所以你需要备份。
socket.on('test', function (call, callback){
^^^^^^^^
删除它。它将不会被使用,并将在更广泛的范围内屏蔽任何回调。
然后在其他地方(即在更广泛的范围内)添加回调函数:
function callback(string_of_what_is_clicked) {
alert(string_of_what_is_clicked);
}
socket.on('test', function (call){
$('.button_1').on('click', function(){
callback('button_1 is clicked');
});
// etc
这是一个客户端部分,它向服务器端发送一个回调,告诉他们点击了哪个按钮。我的问题和你的解决方案之间没有关系
如果要在单击按钮时从客户端向服务器发送消息,则不要使用on
执行此操作。您使用emit
。
$('.button_1').on('click', function(){
socket.emit('button clicked', 'button_1 is clicked');
});
然后套接字侦听事件:
socket.on('button clicked', function (msg) {
console.log('click: ' + msg);
});