NodeJS/SocketIO套接字不会发出
NodeJS/SocketIO Socket will not emit
我正试图将数据"发送"到服务器,但什么也没发生。控制台显示我已连接,但无论何时都不会记录任何内容我尝试发出特定的命令。
客户端(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");
});
服务器端(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
});
});
您需要在连接的套接字上侦听事件,如下所示:
admin.on('connection', function(socket) {
socket.on('task', function(args) {
console.log(args);
});
});
这是因为事件来自连接的套接字,否则socket.io将无法知道事件来自哪个套接字,事件的相关数据也将毫无意义。
相关文章:
- 如何使用HTML5与UDP套接字通信
- 在node.js中写入ECONNRESET错误和套接字连接检查
- java,javascript签名的小程序(文件选择,ftp上传)安全性/套接字异常
- 套接字服务器向客户端广播,但不从两者接收
- 如何确定套接字中的变量是否匹配
- 如何通过网络套接字连接到树莓派上的Mosquitto经纪人
- 快速的套接字 io 实例/中间件
- PHP:Web套接字和html 5
- 无法从客户端发出套接字消息
- STOMP web套接字回调不'不起作用
- Will my'新对象'在套接字断开连接时被垃圾收集
- 套接字服务器在本地获得500毫秒的往返时间
- 将服务器托管的Web应用程序连接到本地Web套接字
- 通过套接字发送画布元素,JS中的最大堆栈大小
- 如何使用套接字将node.js与ada连接起来
- Node SocketIO以编程方式强制在损坏的套接字上重新启动
- socketIO - 将套接字映射到连接
- 从 Nodejs socketio 数组获取所有套接字 id
- NodeJS + SocketIO 大套接字事件管理
- NodeJS/SocketIO套接字不会发出