appengine频道没有消息到达 - javascript

我正在尝试使通道api工作。
这是我到目前为止所拥有的:

在视图中:

def channel_test(channel_token):
    tries = 1
    logging.info('starting channel_test')
    for attempt in range(tries):
        message = 'this is message number: ' + str(attempt)
        channel.send_message(channel_token, message)
        logging.info('just sent: ' + message)
        logging.info(channel_token)

def viewfunc():
    channel_token = channel.create_channel('aosasdf123')
    deferred.defer(channel_test, channel_token, _countdown=10)
    return render_template('Main/cycle.html', form=form, channel_token=channel_token)

在我的模板中:

<script type="text/javascript" charset="utf-8">
    function tell_user(message) {
        $('#CycleChannelMessages').append(message + '<br />');
    }

    function onOpened() {
        console.log('onOpened');
        var connected = true;
        tell_user('ready to take messages');
        tell_user('{{ channel_token }}');
    }
    function onMessage(msg_obj) {
        console.log('onMessage');
        tell_user('something');
        // tell_user(msg_obj.data);

    }
    function onError(obj) {
        console.log('onError');
    }
    function onClose(obj) {
        console.log('onClose');
    }

    var channel = new goog.appengine.Channel('{{ channel_token }}');
    var socket = channel.open();
    socket.onopen = onOpened;
    socket.onmessage = onMessage;
    socket.onerror = onError;
    socket.onclose = onClose;
</script>

但是我得到的唯一输出是来自onOpen:

ready to take messages
channel-1788270053-aosasdf123

在控制台中,我只会看到:

onOpened

因此,没有其他功能已运行。来自appengine启动器的日志清楚地表明,延迟功能正在运行,并且没有引起任何错误或警告。

现在我做错了什么,因为前端什么都没有出现。
这是在开发服务器BTW上。我尚未在生产中尝试过它。

如果这有什么不同,框架就是Flask。

参考方案

您将client_id传递给send_message而不是channel_token。因此,您的代码应为:

channel.send_message('aosasdf123', message)

您将channel_token客户端放在打开通道的位置,并将client_id保密在服务器端,以便通过通道将消息传输到该客户端。

如果我得到url(''),我该如何使用另一个URL - javascript

我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/images/no-image.jpg:url();这是我的代码:<div class="uk-clearfix uk-position-relative"> <div class="recipeb…

对ID为'abc%'的dom执行操作 - javascript

我想对ID为'abc%'的DOM进行一些操作<a id='abc1'></a> <a id='abc2'></a> <a id='abc3'></a> <a id='abc4'></a>…

Python dict组合与JS原型继承之间的实际区别 - javascript

以下每个代码段中的combo之间是否有实际区别?Python 3.5以上版本:foo = {'name': 'foo', 'one': 1, 'two': 2} bar = {'two': "two", 'three':…

Jsonp没有出现``访问控制允许来源''错误 - javascript

在我的PHP中,我喜欢这样来回显jsonp类型的“ json数据”echo $_GET['callback'] . '('.json_encode($arr).')'; 在我的js(angularjs)中,$http.get('http://example.com/app/?callbac…

单击html按钮从服务器运行Python文件 - javascript

我的服务器上有一个python文件。每当用户单击“提交”按钮时,我都希望运行此文件。我的文件.py和.html都位于不同的目录中。而且我也不能使用任何框架这个怎么做? 参考方案 一个选项(由furas建议)是在后端使用python框架(Django,Flask,Bottle)创建API服务器。您也可以在节点中通过调用require('child_p…