我正在尝试向服务器“发送”数据,但没有发生任何事情。 控制台说我已连接,但它不会记录任何东西 我尝试发出特定的命令。
Clientside(JQuery / JS):
var ip = "";
$.ajax({
url : "../host",
success : function(result){
ip = result;
}
});
var socket = io.connect(ip);
socket = io('/admin');
socket.on('add_task', function(name, event, command, args) {
AddTask(name, event, command, args); //I get this data from the server
});
socket.on('remove_task', function(name) {
DeleteTask(name); //I get this data from the server.
});
$("#addTask").click(function() {
var args = ["add", $("#nameData").val(), $("#eventData").val(), $("#commandData").val(), $("#argData").val()];
socket.emit("task", args); //This won't emit anything.
$("#add-modal").modal("hide");
});
Serverside(NodeJS):
admin.on('connection', function(socket) {
console.log("An admin has connected."); //This logs
task.get().forEach(function(tsk) {
var tdata = tsk.split(':');
admin.emit('add_task', tdata[0], tdata[1], tdata[2], tdata[3]); //This sends
});
admin.on('task', function(args) {
console.log(args); //This doesn't log
});
});
答案 0 :(得分:0)
您需要在连接的套接字上侦听事件,如下所示:
admin.on('connection', function(socket) {
socket.on('task', function(args) {
console.log(args);
});
});
这是因为事件来自连接的套接字,否则socket.io将无法知道事件来自哪个套接字,并且事件的相关数据将毫无意义。