Mat*_*ell 0 javascript django google-app-engine push channel
嘿,大家好 我正在尝试使用App Engine Channel API(此处记录)为我的应用程序启用推送更新.但是,我在设置初始化通信通道的机制时遇到了一些问题.
问题是,当我加载有问题的页面时,我得到onError和onClose处理程序的调试打印,但我没有得到onOpen处理程序的调试打印.没有其他事情发生.以下是使用Google Chrome开发者工具的javascript控制台输出:
资源解释为脚本,但使用MIME类型text/html进行传输...... jsapi:-1
onError ..... 443088:88
onClose ..... 443088:80
这里是我的Django模板的(大部分)javascript代码的相关部分:
<script type="text/javascript">
onOpen = function() {
console.debug('onOpen');
var xhrArgs = {
url: '/channel/connect/',
headers: { 'Content-Type': 'application/json' },
postData: dojo.toJson({ 'channel_token': '{{ channel_token }}' }),
handleAs: 'text',
load: function(response) {
alert('success');
},
error: function(error) {
alert('failure: ' + error);
}
};
var deferred = dojo.xhrPost(xhrArgs);
};
onClose = function() {
console.debug('onClose');
};
onMessage = function(msg) {
console.debug('onMessage');
};
onError = function() {
console.debug('onError');
};
openChannel = function() {
var channel = new goog.appengine.Channel('{{ channel_token }}');
var handler = {
'onopen': onOpen,
'onclose': onClose,
'onmessage': onMessage,
'onerror': onError
};
var socket = channel.open(handler);
socket.onopen = onOpen;
socket.onmessage = onMessage;
};
setTimeout(openChannel, 100);
</script>
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,那么此时服务器端代码不相关,因为onOpen似乎甚至没有被调用.我知道我必须遗漏一些简单的东西,但如果有人能帮忙解决这个问题,我将非常感激!
| 归档时间: |
|
| 查看次数: |
1579 次 |
| 最近记录: |