POST pusher/auth 404 (未找到)

3
我正在尝试在本地的node.js服务器上使用Pusher建立一个私有频道。由于某种原因,我无法让我的认证端点正常工作,而且一直收到404错误。
起初,我以为是我如何定义我的端点与本地服务器位置有关的问题,但我认为这不是问题。更可能的是,我对服务器-客户端-API通信的新手水平意味着我错过了一些重要的部分。
我已经查看了Pusher的身份验证文档和我能找到的每个SO线程,但都没有成功。
我已经安装了Node并运行了服务器,Pusher也认识到连接已建立,只是我在身份验证方面失败了。
任何形式的帮助都将不胜感激。
这是当在index.html上点击按钮时调用的客户端JS:
在client.js中:
    function startGame(){
    var nameinput = prompt("Give your game a name","My Game");
    if (nameinput !== null) {
        var initialsinput = prompt("What are your initials?", "MG");
        if (initialsinput !== null) {
            var pusher = new Pusher(key);
            Pusher.channel_auth_endpoint = 'http://localhost:8080/pusher/auth.js';
            var channel = pusher.subscribe("private-"+gamename);
            joined = 'client-opponent_joined'+gamename;
            channel.bind('client-opponent_joined'+gamename, function(data) {
                OnLikeDonkeyKong(data.nameinput,data.initialsinput);
            });
        }
        else {alert("I need your initials.");}
    }
    else {alert ("I need a game name.");}
}

然后,在/pusher/auth.js中:

var express = require( 'express' );
var Pusher = require( 'pusher' );

    var app = express( express.logger() );
    app.use( express.bodyParser() );
    
    var pusher = new Pusher( { appId: 'xxx', key: 'xxx', secret: 'xxx' } );
    
    app.post( '/pusher/auth.js', function( req, res ) {
      var socketId = req.body.socket_id;
      var channel = req.body.channel_name;
      var auth = pusher.authenticate( socketId, channel );
      res.send( auth );
    } );
    
    var port = process.env.PORT || 8080;
    app.listen( port );

最后,这是我得到的错误信息:

POST http://localhost:8080/pusher/auth.js 404 (未找到)


这是哪个版本的Express?var app = express(express.logger());不正确。 - Jordonias
我使用npm安装了最新的express,并且这行代码直接来自于Pusher文档。这应该怎么做呢? - Marshal Gaddis
Express日志记录器已移至“morgan”项目。 npm install morgan var logger = require('morgan')var app = express();app.use(logger()) - Jordonias
1个回答

1

http://localhost:8080/pusher/auth.js

这个url在服务器上不存在。请再次检查auth.js的位置。
来自Pusher文档(link)
认证端点(字符串)
您的服务器上的端点将返回所需的身份验证签名,以便于私有和存在通道进行通信。默认为'/pusher/auth'。
因此,您需要在服务器上创建身份验证端点,并在设置Pusher实例进行身份验证时提供链接。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接