我正在使用GAE + Python创建一个需要向客户端发送敏感数据实时更新的应用程序,我想知道App Engine Channel API是否安全.使用HTTPS是否足够或渠道是否需要自己的安全协议?
此外,App Engine Channel API的底层实现是什么?Websockets,SSE?看起来它实际上只提供从服务器到客户端通过通道的单向通信,然后客户端使用标准HTTP请求与服务器通信.
是否可以将Google Appengine Channel API与DART语言一起使用?如果你能指出一些例子和陷阱(如果有的话),那就太棒了.
我一直在测试我在手机上的应用程序,并希望包括信道API,所以我可以取得即时通知(因为它包含在桌面版),但我注意到,我没有得到我的手机上的任何通道.
我一直在寻找解决方案,但我发现唯一的东西是C2DM - https://developers.google.com/android/c2dm/
但它已不再发展.
我一直也有波纹的Mission Control Chrome上测试谷歌渠道API,并且当它打开我只得到注意,我连接到通道,但是当我把我的应用程序的一些变化我没有得到任何东西.当我关闭它然后一切正常..
我最近一直在努力学习Google App Engine的Channel API.
我试着制作一个简单的聊天应用程序,但我遇到了问题.
这通常是我所做的.
服务器打开一个静态通道:
token = channel.create_channel('bigboys')
Run Code Online (Sandbox Code Playgroud)
客户端js连接到通道:
var channel = new goog.appengine.Channel(token)
Run Code Online (Sandbox Code Playgroud)
我没有使用Google App Engines用户.我不希望客户登录.
所以我的问题是,聊天应用程序并没有真正起作用,只有一个客户端可以加入该频道.我知道每个频道规则有一个客户端ID.那么如何在一个"聊天室"中支持多个客户端?
我试图通过谷歌应用程序引擎通道api从画布发送图像到另一个客户端,然后将显示相同的图像.正在接收消息但未显示图像.
在发送方:
var image = context.getImageData(0, 0, imageCanvas.width, imageCanvas.height);
var buffer = new ArrayBuffer(image.data.length);
var bytes = new Uint8Array(buffer);
for (var i=0; i<bytes.length; i++) {
bytes[i] = image.data[i];
}
sendMessage({image: buffer});
Run Code Online (Sandbox Code Playgroud)
在另一端渲染数据:
var bytes = new Uint8Array(buffer.size);
var image = context.createImageData(imageCanvas.width, imageCanvas.height);
for (var i=0; i<image.length; i++) {
image.data[i] = bytes[i];
}
context.drawImage(image, 0, 0);
Run Code Online (Sandbox Code Playgroud)
控制台一直说最后一行有一个Type错误.
javascript google-app-engine python-2.7 channel-api html5-canvas
我正在尝试按照Dan Ristic 的这个示例进行RTCDataChannel
浏览器 p2p 通信,与 Google 的Channel API进行信号通信。这似乎是默默的失败-我不能得到的RTCDataChannel.onopen
,RTCPeerConnection.onicecandidate
或者RTCPeerConnection.ondatachannel
事件火灾。
<html>
<head>
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="/_ah/channel/jsapi"></script>
<script>
$(document).ready(function(){
var IS_CHROME = !!window.webkitRTCPeerConnection,
RTCPeerConnection = window.webkitRTCPeerConnection || mozRTCPeerConnection,
RTCIceCandidate = window.RTCIceCandidate || RTCSessionDescription,
RTCSessionDescription = window.RTCSessionDescription || mozRTCSessionDescription,
SESSION_ID = "12345",
weAreHost,
optionalRtpDataChannels = {
optional: [{RtpDataChannels: true}]
},
mediaConstraints = {
optional: [],
mandatory: {
OfferToReceiveAudio: false, // Hmm!!
OfferToReceiveVideo: false // Hmm!!
}
};
// Signaling …
Run Code Online (Sandbox Code Playgroud) javascript google-app-engine channel-api webrtc rtcdatachannel
channel-api ×6
javascript ×3
android ×1
dart ×1
html5-canvas ×1
https ×1
ios ×1
python ×1
python-2.7 ×1
security ×1
webrtc ×1