Google app engine 谷歌应用引擎。频道API。提供的令牌无效。

Google app engine 谷歌应用引擎。频道API。提供的令牌无效。,google-app-engine,webrtc,channel-api,rtc,Google App Engine,Webrtc,Channel Api,Rtc,我一直在尝试使用WebRTC制作一个应用程序来调用浏览器对浏览器。我编写了一个简单的servlet来创建通道: PrefClubChannelServletServlet extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { String channelKey = req.getParameter("

我一直在尝试使用
WebRTC
制作一个应用程序来调用浏览器对浏览器。我编写了一个简单的servlet来创建通道:

  PrefClubChannelServletServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws IOException {
    String channelKey = req.getParameter("userid");
    resp.addHeader("Access-Control-Allow-Origin", "*");

    ChannelService channelService = ChannelServiceFactory.getChannelService();
    String token = channelService.createChannel(channelKey);
    resp.setContentType("text/plain");
    resp.getWriter().println(token);
}
}
我已经在谷歌应用程序引擎中部署了它。 在我的web应用程序中,我有一个带有Java脚本的页面,类似于。在我的代码中,调用者调用
prepare(1)
,被调用者调用–prepare(0)

因此,调用者和被调用者都使用相同的令牌来打开通道,事实上,他们打开了通道,获得了媒体并建立了
rtpeerconnection

function openChannel(channelToken) {
    console.log("Opening channel.");
    var channel = new goog.appengine.Channel(channelToken);
    var handler = {
        'onopen': onChannelOpened,
        'onmessage': onChannelMessage,
        'onerror': onChannelError,
        'onclose': onChannelClosed
    };
    socket = channel.open(handler);
}
主要问题是事件处理程序
onChannelMessage
无法工作。我在控制台日志中没有看到任何S->C:。被呼叫者未看到呼叫者提供的服务

然后,我刷新了我的servlet,重新部署了它,发现我根本无法打开通道。打开频道时,我遇到未捕获错误:

提供的令牌无效


没有发现解释刷新为何会创建坏令牌的代码有任何问题。除非你以某种方式重复使用过期的代币。。。要进行调试,请设置一个令牌直接字符串channelKey=“mykey”。将控制台消息放在OnChannel Open中。
function openChannel(channelToken) {
    console.log("Opening channel.");
    var channel = new goog.appengine.Channel(channelToken);
    var handler = {
        'onopen': onChannelOpened,
        'onmessage': onChannelMessage,
        'onerror': onChannelError,
        'onclose': onChannelClosed
    };
    socket = channel.open(handler);
}