Javascript客户端页面不捕获Python信号
在我关于事件“连接”的项目中,我发出许多信号:Javascript客户端页面不捕获Python信号,javascript,python,jquery,flask,signals,Javascript,Python,Jquery,Flask,Signals,在我关于事件“连接”的项目中,我发出许多信号: @sock.on( "connect" ) def connectHandler(): logger.info("User logged") for k, v in mapMsg: #mapMsg is a map of msg msg = v.getValuesToString() #msg is a string sock.emit( 'ActionPe
@sock.on( "connect" )
def connectHandler():
logger.info("User logged")
for k, v in mapMsg: #mapMsg is a map of msg
msg = v.getValuesToString() #msg is a string
sock.emit( 'ActionPending', {'data': msg}, namespace="/test" )
在index.html中:
{% extends 'base.html' %}
{% block scripts %}
<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js" integrity="sha256-yr4fRk/GU1ehYJPAs8P4JlTgu0Hdsp4ZKrx8bDEDC3I=" crossorigin="anonymous"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
namespace = '/test'
var socket = io(namespace);
socket.on('connect', function() {
console.log('CONNECT EVENT'); //<-- I READ THIS ON CONSOLE!
});
var d=0;
socket.on('ActionPending', function(msg) {
console.log("Sono qui con msg: "+msg) //<--this i dont view!
if (d > 3 ){
$('#log4').empty()
d=0;
}
$('#log4').append('<br>' + $('<div/>').text('ActionPending: ' + msg.data).html());
d++;
//if (cb)
//cb();
});
<dt><h3>ActionPending:</h3></dt>
<dd><div id="log4"></div></dd>
{%extends'base.html%}
{%block scripts%}
$(文档).ready(函数(){
命名空间='/test'
var socket=io(名称空间);
socket.on('connect',function(){
console.log('CONNECT EVENT');//除了缺少一些分号和var声明之外,还缺少document.ready函数的右括号和右脚本标记
您遇到的问题是,变量“socket”位于document.ready上调用的匿名函数的命名空间中
“ActionPending”套接字事件是在document.ready函数之外定义的。如果调整代码,使“ActionPending”事件也在document.ready函数内,则代码应按预期工作
{% extends 'base.html' %}
{% block scripts %}
<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js" integrity="sha256-yr4fRk/GU1ehYJPAs8P4JlTgu0Hdsp4ZKrx8bDEDC3I=" crossorigin="anonymous"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
var namespace = '/test';
var socket = io(namespace);
socket.on('connect', function() {
console.log('CONNECT EVENT'); //<-- I READ THIS ON CONSOLE!
});
var d=0;
socket.on('ActionPending', function(msg) {
console.log("Sono qui con msg: "+msg); //<--this i dont view!
if (d > 3 ){
$('#log4').empty();
d=0;
}
$('#log4').append('<br>' + $('<div/>').text('ActionPending: ' + msg.data).html());
d++;
//if (cb)
//cb();
});
});
</script>
<dt><h3>ActionPending:</h3></dt>
<dd><div id="log4"></div></dd>
{%extends'base.html%}
{%block scripts%}
$(文档).ready(函数(){
变量名称空间='/test';
var socket=io(名称空间);
socket.on('connect',function(){
console.log('CONNECT EVENT');//看起来您的'ready'函数没有右大括号?问题可能是您在页面准备就绪时定义套接字,但socket.on事件处理程序在ready函数之外并且在套接字初始化之前。