Twilio Twilsock连接已被服务器关闭 [英] Twilio Twilsock connection closed by server

查看:101
本文介绍了Twilio Twilsock连接已被服务器关闭的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试与Twilio的IP消息传递服务集成,并且尝试在此处遵循其指南: https://www.twilio.com/docs/api/ip-messaging/guides/identity

I'm trying to integrate with Twilio's IP messaging service and I'm attempting to follow their guide here: https://www.twilio.com/docs/api/ip-messaging/guides/identity

我正在将AngularJS前端与Node.JS后端一起使用.

I'm using AngularJS front end with Node.JS backend.

这是我的后端调用,可以正常执行:

Here's my backend call, which executes fine:

getTwilioToken: function (request, response) {

    var appName = 'AppTwilio';
    var identity = request.body.id;
    var deviceId = request.body.device;

    // Create a unique ID for the client on their current device
    var endpointId = appName + ':' + identity + ':' + deviceId;

    // Create a "grant" which enables a client to use IPM as a given user,
    // on a given device
    var ipmGrant = new IpMessagingGrant({
        serviceSid: "[MY_PROD_SID]",
        endpointId: endpointId
    });

    // Create an access token which we will sign and return to the client,
    // containing the grant we just created
    var token = new AccessToken(
        "[MY PROD ACCOUNT SID]",
        "[MY PROD ACCOUNT SID]",
        "[Prod Auth Token]"
    );
    token.addGrant(ipmGrant);
    token.identity = identity;

    // Serialize the token to a JWT string and include it in a JSON response
    response.send({
        identity: identity,
        token: token.toJwt()
    });
}

这是我的AngularJS东西:

Here's my AngularJS stuff:

这在我的MessagingService中执行得很好

This is in my MessagingService this executes fine

    getTwilioToken: function (userid, devicekey) {
        return $http.post(apiUrl + '/getTwilioToken', { id: userid, device: devicekey }).then(function (response) {
            deferred.resolve(response.data);
            return deferred.promise;
        });
    }

在我的控制器中,有一个与此连接的按钮:

In my controller I have a button wired up to this:

$scope.getTwilioToken = function () {

    var userid = uuid.v4(); //just creating a dummy id for now
    var device = uuid.v4(); //just creating dummy device for now

    MessagingService.getTwilioToken(userid, device).then(function (response) {
        $scope.accessManager = new Twilio.AccessManager(response.token);
        $scope.messagingClient = new Twilio.IPMessaging.Client($scope.accessManager);

    });

}

这是我的回应,我正在从服务器/twilio回来,其中包含令牌:

Here's my response i'm getting back from my server/twilio that includes the token:

{
    "identity": "1f778bb6-2b3f-4008-9697-4733cf7870c5",
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImN0eSI6InR3aWxpby1mcGE7dj0xIn0.eyJqdGkiOiJBQzg1ZTNkYTYzZjNiY2MxNTY3ODdjMDA5NzdjZTBhNDA5LTE0NjM2NzM0MDYiLCJncmFudHMiOnsiaWRlbnRpdHkiOiIxZjc3OGJiNi0yYjNmLTQwMDgtOTY5Ny00NzMzY2Y3ODcwYzUiLCJpcF9tZXNzYWdpbmciOnsic2VydmljZV9zaWQiOiJJUzMyNjhlN2NhYWYxZDRlYTk5MGM5NWZkMTRkNWQ0NDM0IiwiZW5kcG9pbnRfaWQiOiJSaXNlclVUd2lsaW86MWY3NzhiYjYtMmIzZi00MDA4LTk2OTctNDczM2NmNzg3MGM1Ojc4NzcxNDc3LWJmZjktNDU3NC04Njc4LWQwOGZiM2Q0YjcxMCJ9fSwiaWF0IjoxNDYzNjczNDA2LCJleHAiOjE0NjM2NzcwMDYsImlzcyI6IkFDODVlM2RhNjNmM2JjYzE1Njc4N2MwMDk3N2NlMGE0MDkiLCJzdWIiOiJBQzg1ZTNkYTYzZjNiY2MxNTY3ODdjMDA5NzdjZTBhNDA5In0.XIUAGoyO8EtKZOfzbRe4qo-1wXddiMGswidbakUE2ZA"
}

那时候我在浏览器中遇到这些错误:

I'm getting these errors in the browser at that point:

twilio-ip-messaging.min.js:151服务器关闭Twilsock连接[] i._onSocketRejected @ twilio-ip-messaging.min.js:151x.create.callbacks.onsocketRejected @ twilio-ip-messaging.min.js:151e.doCallback @ twilio-ip-messaging.min.js:235e.afterThisEvent @ twilio-ip-messaging.min.js:235e.afterEvent @ twilio-ip-messaging.min.js:235transition @ twilio-ip-messaging.min.js:235(匿名函数)@ twilio-ip-messaging.min.js:235r.onmessage @ twilio-ip-messaging.min.js:151cds.twilio.com/v2/Streams:1 POST https://cds.twilio.com/v2/Streams 403(禁止访问)

twilio-ip-messaging.min.js:151 Twilsock connection closed by server []i._onSocketRejected @ twilio-ip-messaging.min.js:151x.create.callbacks.onsocketRejected @ twilio-ip-messaging.min.js:151e.doCallback @ twilio-ip-messaging.min.js:235e.afterThisEvent @ twilio-ip-messaging.min.js:235e.afterEvent @ twilio-ip-messaging.min.js:235transition @ twilio-ip-messaging.min.js:235(anonymous function) @ twilio-ip-messaging.min.js:235r.onmessage @ twilio-ip-messaging.min.js:151 cds.twilio.com/v2/Streams:1 POST https://cds.twilio.com/v2/Streams 403 (Forbidden)

twilio-ip-messaging.min.js:150 IPMSG:无法创建会话对象{状态:403,描述:禁止",正文:"{"消息":禁止访问",状态":403}}(匿名函数)@ twilio-ip-messaging.min.js:150s @ twilio-ip-messaging.min.js:153(匿名函数)@ twilio-ip-messaging.min.js:153c @ twilio-ip-messaging.min.js:152突变(异步)n @ twilio-ip-messaging.min.js:152(匿名函数)@ twilio-ip-messaging.min.js:152I @ twilio-ip-messaging.min.js:153P @ twilio-ip-messaging.min.js:153(匿名函数)@ twilio-ip-messaging.min.js:152o.onreadystatechange @ twilio-ip-messaging.min.js:151XMLHttpRequest.send(异步)(匿名函数)@ twilio-ip-messaging.min.js:151w @ twilio-ip-messaging.min.js:153o @ twilio-ip-messaging.min.js:151l.post @ twilio-ip-messaging.min.js:151f.post @ twilio-ip-messaging.min.js:151i.post @ twilio-ip-messaging.min.js:149i.createStream @ twilio-ip-messaging.min.js:149i.initialize @ twilio-ip-messaging.min.js:150i @ twilio-ip-messaging.min.js:150(匿名函数)@essagingController.js:32(匿名函数)@ angular.js:15961n.$eval@angular.js:17229n.$digest@angular.js:17045n.$apply@angular.js:17337l@angular.js:11572H @ angular.js:11778u.onload @ angular.js:11711XMLHttpRequest.send(异步)(匿名函数)@ angular.js:11756m @ angular.js:11517g @ angular.js:11227(匿名函数)@ angular.js:15961n$ eval @ angular.js:17229n.$ digest @ angular.js:17045n.$ apply @ angular.js:17337(匿名函数)@ angular.js:25023n.event.dispatch @ jquery.min.js:3r.handle@ jquery.min.js:3twilio-ip-messaging.min.js:153未处理的承诺拒绝对象{状态:403,描述:禁止",正文:"{"消息":禁止访问",状态":403}"}(匿名功能)@ twilio-ip-messaging.min.js:153R @ twilio-ip-messaging.min.js:153(匿名函数)@ twilio-ip-messaging.min.js:153t.exports @ twilio-ip-messaging.min.js:152m.(匿名函数)@ twilio-ip-messaging.min.js:152_ @ twilio-ip-messaging.min.js:152v @ twilio-ip-messaging.min.js:152twilio-ip-messaging.min.js:153未处理的承诺拒绝对象{状态:403,描述:禁止",正文:"{"消息:"禁止访问,"状态:403}"}(匿名功能)@ twilio-ip-messaging.min.js:153R @ twilio-ip-messaging.min.js:153(匿名函数)@ twilio-ip-messaging.min.js:153t.exports @ twilio-ip-messaging.min.js:152m.(匿名函数)@ twilio-ip-messaging.min.js:152_ @ twilio-ip-messaging.min.js:152v @ twilio-ip-messaging.min.js:152twilio-ip-messaging.min.js:153未处理的承诺拒绝对象{状态:403,描述:禁止",正文:"{"消息":禁止访问",状态":403}"}(匿名功能)@ twilio-ip-messaging.min.js:153R @ twilio-ip-messaging.min.js:153(匿名函数)@ twilio-ip-messaging.min.js:153t.exports @ twilio-ip-messaging.min.js:152m.(匿名函数)@ twilio-ip-messaging.min.js:152_ @ twilio-ip-messaging.min.js:152v @ twilio-ip-messaging.min.js:152twilio-ip-messaging.min.js:153未处理的承诺拒绝对象{状态:403,描述:禁止",正文:"{"消息":禁止访问",状态":403}"}(匿名功能)@ twilio-ip-messaging.min.js:153R @ twilio-ip-messaging.min.js:153(匿名函数)@ twilio-ip-messaging.min.js:153t.exports @ twilio-ip-messaging.min.js:152m.(匿名函数)@ twilio-ip-messaging.min.js:152_ @ twilio-ip-messaging.min.js:152v @ twilio-ip-messaging.min.js:152twilio-ip-messaging.min.js:153未处理的承诺拒绝对象{状态:403,描述:禁止",正文:"{"消息":禁止访问",状态":403}"}(匿名功能)@ twilio-ip-messaging.min.js:153R @ twilio-ip-messaging.min.js:153(匿名函数)@ twilio-ip-messaging.min.js:153t.exports @ twilio-ip-messaging.min.js:152m.(匿名函数)@ twilio-ip-messaging.min.js:152_ @ twilio-ip-messaging.min.js:152v @ twilio-ip-messaging.min.js:152twilio-ip-messaging.min.js:153未处理的承诺拒绝对象{状态:403,描述:禁止",正文:"{"消息:"禁止访问,"状态:403}"}(匿名功能)@ twilio-ip-messaging.min.js:153R @ twilio-ip-messaging.min.js:153(匿名函数)@ twilio-ip-messaging.min.js:153t.exports @ twilio-ip-messaging.min.js:152m.(匿名函数)@ twilio-ip-messaging.min.js:152_ @ twilio-ip-messaging.min.js:152v @ twilio-ip-messaging.min.js:152

twilio-ip-messaging.min.js:150 IPMSG: failed to create session Object {status: 403, description: "Forbidden", body: "{"message":"Access forbidden","status":403}"}(anonymous function) @ twilio-ip-messaging.min.js:150s @ twilio-ip-messaging.min.js:153(anonymous function) @ twilio-ip-messaging.min.js:153c @ twilio-ip-messaging.min.js:152Mutation (async)n @ twilio-ip-messaging.min.js:152(anonymous function) @ twilio-ip-messaging.min.js:152I @ twilio-ip-messaging.min.js:153P @ twilio-ip-messaging.min.js:153(anonymous function) @ twilio-ip-messaging.min.js:152o.onreadystatechange @ twilio-ip-messaging.min.js:151XMLHttpRequest.send (async)(anonymous function) @ twilio-ip-messaging.min.js:151w @ twilio-ip-messaging.min.js:153o @ twilio-ip-messaging.min.js:151l.post @ twilio-ip-messaging.min.js:151f.post @ twilio-ip-messaging.min.js:151i.post @ twilio-ip-messaging.min.js:149i.createStream @ twilio-ip-messaging.min.js:149i.initialize @ twilio-ip-messaging.min.js:150i @ twilio-ip-messaging.min.js:150(anonymous function) @ messagingController.js:32(anonymous function) @ angular.js:15961n.$eval @ angular.js:17229n.$digest @ angular.js:17045n.$apply @ angular.js:17337l @ angular.js:11572H @ angular.js:11778u.onload @ angular.js:11711XMLHttpRequest.send (async)(anonymous function) @ angular.js:11756m @ angular.js:11517g @ angular.js:11227(anonymous function) @ angular.js:15961n.$eval @ angular.js:17229n.$digest @ angular.js:17045n.$apply @ angular.js:17337(anonymous function) @ angular.js:25023n.event.dispatch @ jquery.min.js:3r.handle @ jquery.min.js:3 twilio-ip-messaging.min.js:153 Unhandled promise rejection Object {status: 403, description: "Forbidden", body: "{"message":"Access forbidden","status":403}"}(anonymous function) @ twilio-ip-messaging.min.js:153R @ twilio-ip-messaging.min.js:153(anonymous function) @ twilio-ip-messaging.min.js:153t.exports @ twilio-ip-messaging.min.js:152m.(anonymous function) @ twilio-ip-messaging.min.js:152_ @ twilio-ip-messaging.min.js:152v @ twilio-ip-messaging.min.js:152 twilio-ip-messaging.min.js:153 Unhandled promise rejection Object {status: 403, description: "Forbidden", body: "{"message":"Access forbidden","status":403}"}(anonymous function) @ twilio-ip-messaging.min.js:153R @ twilio-ip-messaging.min.js:153(anonymous function) @ twilio-ip-messaging.min.js:153t.exports @ twilio-ip-messaging.min.js:152m.(anonymous function) @ twilio-ip-messaging.min.js:152_ @ twilio-ip-messaging.min.js:152v @ twilio-ip-messaging.min.js:152 twilio-ip-messaging.min.js:153 Unhandled promise rejection Object {status: 403, description: "Forbidden", body: "{"message":"Access forbidden","status":403}"}(anonymous function) @ twilio-ip-messaging.min.js:153R @ twilio-ip-messaging.min.js:153(anonymous function) @ twilio-ip-messaging.min.js:153t.exports @ twilio-ip-messaging.min.js:152m.(anonymous function) @ twilio-ip-messaging.min.js:152_ @ twilio-ip-messaging.min.js:152v @ twilio-ip-messaging.min.js:152 twilio-ip-messaging.min.js:153 Unhandled promise rejection Object {status: 403, description: "Forbidden", body: "{"message":"Access forbidden","status":403}"}(anonymous function) @ twilio-ip-messaging.min.js:153R @ twilio-ip-messaging.min.js:153(anonymous function) @ twilio-ip-messaging.min.js:153t.exports @ twilio-ip-messaging.min.js:152m.(anonymous function) @ twilio-ip-messaging.min.js:152_ @ twilio-ip-messaging.min.js:152v @ twilio-ip-messaging.min.js:152 twilio-ip-messaging.min.js:153 Unhandled promise rejection Object {status: 403, description: "Forbidden", body: "{"message":"Access forbidden","status":403}"}(anonymous function) @ twilio-ip-messaging.min.js:153R @ twilio-ip-messaging.min.js:153(anonymous function) @ twilio-ip-messaging.min.js:153t.exports @ twilio-ip-messaging.min.js:152m.(anonymous function) @ twilio-ip-messaging.min.js:152_ @ twilio-ip-messaging.min.js:152v @ twilio-ip-messaging.min.js:152 twilio-ip-messaging.min.js:153 Unhandled promise rejection Object {status: 403, description: "Forbidden", body: "{"message":"Access forbidden","status":403}"}(anonymous function) @ twilio-ip-messaging.min.js:153R @ twilio-ip-messaging.min.js:153(anonymous function) @ twilio-ip-messaging.min.js:153t.exports @ twilio-ip-messaging.min.js:152m.(anonymous function) @ twilio-ip-messaging.min.js:152_ @ twilio-ip-messaging.min.js:152v @ twilio-ip-messaging.min.js:152

推荐答案

此处是Twilio开发人员的福音.

Twilio developer evangelist here.

在这里查看您的错误:

twilio-ip-messaging.min.js:150 IPMSG:创建会话对象失败{状态:403,描述:禁止",正文:"{"消息:"访问禁止,"状态:403}"}(匿名函数)@twilio-ip-messaging.min.js:150s

twilio-ip-messaging.min.js:150 IPMSG: failed to create session Object {status: 403, description: "Forbidden", body: "{"message":"Access forbidden","status":403}"}(anonymous function) @ twilio-ip-messaging.min.js:150s

我认为您无法通过身份验证,这意味着生成的身份和令牌不正确.查看您的代码,我看到了:

Suggests to me you're failing to authenticate, which means the generated identity and token are incorrect. Looking at your code I saw this:

var token = new AccessToken(
        "[MY PROD ACCOUNT SID]",
        "[MY PROD ACCOUNT SID]",
        "[Prod Auth Token]"
    );

现在,除非您只是使用了复制和粘贴此错误的方式,否则您不应该使用帐户SID两次.您的访问令牌应由帐户SID,API密钥和API机密组成.像这样:

Now, unless you've just used copied and pasted this wrong, you shouldn't be using your account SID twice. Your access token should be composed of the Account SID, API Key and API Secret. More like this:

var token = new AccessToken(
        "[MY PROD ACCOUNT SID]",
        "[API KEY]",
        "[API SECRET]"
    );

如果您不确定如何获取此信息,请查看

If you're unsure about how to get this information though, have a look at the Gather Account Information section on the JavaScript Quickstart.

除此之外,您的代码看起来还不错,并且我认为当您确保使用正确的身份验证令牌时,错误将消失.

Other than that your code looks fine, and I think the error will disappear when you make sure you're using the correct authentication tokens.

希望这对您有帮助

这篇关于Twilio Twilsock连接已被服务器关闭的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆