Я пытаюсь открыть канал путем копирования и вставки маркеров в поле ввода, однако консоль возвращается,маркер канала Google App Engine недействителен
Invalid + лексемы.
Вот код для локального хоста: 8080/
<html>
<head>
<script type="text/javascript" src="https://talkgadget.google.com/talkgadget/channel.js"></script>
<script>
function OpenChannel(){
channel = new goog.appengine.Channel(document.getElementById('Token').value);
socket = channel.open();
socket.onmessage = function(message){
console.log(message);
}
socket.onopen = function(){
connected = true;
console.log('opened');
}
socket.onerror = function(err){
console.log(err.description);
}
socket.onclose = function(){
console.log('closed');
}
}
</script>
</head>
<body>
Token: <input id="Token"></input><br/>
<button onclick="OpenChannel()">Open Channel</button>
</body>
</html>
Я создаю маркер открытием, "локальный: 8080/лексем имя = ...", который записывает маркер канала на страницу. Вот класс питона для этой страницы:
class TokenPage(webapp2.RequestHandler):
def get(self):
token = channel.create_channel(self.request.get('name'))
self.response.write(token)
Я довольно много копировал документацию линию для линии, так что я понятия не имею, что происходит неправильно.
Решение:
заменить
<script type="text/javascript" src="https://talkgadget.google.com/talkgadget/channel.js"></script>
с
<script type="text/javascript" src="/_ah/channel/jsapi"></script>
.
И если вы не хотите или не можете использовать тег сценария вы можете импортировать его с ним: https://github.com/Fantasim/app-engine-channel -js-api – Fantasim