【发布时间】:2014-05-29 08:13:52
【问题描述】:
我在heroku/虚拟服务器上部署了pusher的认证程序代码。服务器应用程序启动成功,但是当 android 移动客户端尝试连接时,控制台上会显示以下错误 -
TypeError: Cannot call method 'handle' of undefined
at Function.app.handle (~/MessagingServer/node_modules/express/lib/application.js:122:16)
at Layer.fn [as handle] (~/MessagingServer/node_modules/express/lib/application.js:189:17)
at trim_prefix (~/MessagingServer/node_modules/express/lib/router/index.js:255:15)
at ~/MessagingServer/node_modules/express/lib/router/index.js:216:9
at Function.proto.process_params (~/MessagingServer/node_modules/express/lib/router/index.js:284:12)
at next (~/MessagingServer/node_modules/express/lib/router/index.js:207:19)
at Layer.expressInit [as handle] (~/MessagingServer/node_modules/express/lib/middleware/init.js:23:5)
at trim_prefix (~/MessagingServer/node_modules/express/lib/router/index.js:255:15)
at ~/MessagingServer/node_modules/express/lib/router/index.js:216:9
at Function.proto.process_params (~/MessagingServer/node_modules/express/lib/router/index.js:284:12)
但应用程序并没有崩溃。
Android 应用程序的 logcat 中记录了以下输出 -
05-29 08:01:21.960: I/System.out(2531): java.io.FileNotFoundException: http://192.168.146.128:5000 com.pusher.client.AuthorizationFailureException: java.io.FileNotFoundException: http://192.168.146.128:5000
消息服务器的源代码在这里 -
var express = require( 'express' );
var Pusher = require( 'pusher' );
var logger = require('morgan');
var bodyParser= require('body-parser');
var app = express( logger() );
app.use( express(bodyParser() ));
var pusher = new Pusher( { appId: '<id>', key:'<key>', secret:'<secret>' } );
app.post( '/pusher/auth', function( req, res ) {
var socketId = req.body.socket_id;
var channel = req.body.channel_name;
var auth = pusher.auth( socketId, channel );
res.send( auth );
} );
var port = process.env.PORT || 5000;
app.listen( port );
【问题讨论】: