Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 28.12.2020 00:11:10

Ошибка при запуске Twillio Chat при запуске laravel 8 приложения...

Всем привет,
Надо доработать  laravel 5.8 / vuejs 2.6 приложение с использованием "twilio/sdk": "^5.42" и
пакета "vue-native-websocket": “^2.0.14” ( https://www.npmjs.com/package/vue-native-websocket )

В этом приложении Twillio Chat работает но куча других недоделок, включая необходимость делать
Twillio Video и Twillio ShareScreen

Хочу разобраться c Twillio API  переношу код чата в свое laravel 8.12 / twilio/sdk "twilio/sdk": "^6.15"
/ vue: 2.6.12 / "vue-native-websocket": "^2.0.14" приложение с теми же Twilio параметрами но
получаю ошибку при инициализации чата :

vue.common.dev.js?4650:630 [Vue warn]: Error in v-on handler (Promise/async): "Error: Forbidden"

found in ...

Делаю :

methods: {


            async runChat() {
                this.isLoading = true;

                const res = await axios.post("/admin/check_chat_channel", {  // get token from server
                    user_email: this.loggedUser.email,
                    user_id: this.loggedUser.id,
                });
                console.log('runChat res.data::')
                console.log(res.data)

                const chat_token = await this.fetchChatToken();
                await this.initializeChatClient(
                    chat_token,
                    this.selectedUser.id,
                    res.data
                );
                await this.fetchMessages();
                this.is_sessionPane = false;
                this.isLoading = false;
                if (type != 'chat') {
                    this.startSession();
                }
            },

            async initializeChatClient(token, id, channelName) {
                console.log('initializeChatClient channelName::')
                console.log(channelName)

                console.log('initializeChatClient Twilio.Chat::')
                console.log(Twilio.Chat)

                console.log('initializeChatClient Twilio.Chat.Client::')
                console.log(Twilio.Chat.Client)

                const client = await Twilio.Chat.Client.create(token);
                console.log('+1 client::')
                console.log(client)

                client.on("tokenAboutToExpire", async () => {
                    const token = await this.fetchChatToken();
                    client.updateToken(token);
                });
                console.log('+12::')
                this.channel = await client.getChannelByUniqueName(channelName); // ОШИБКА НА ЭТОЙ СТРОКЕ
                console.log('+13:: this.channel')
                console.log(this.channel)

В консоле обьекты чата и клиента : https://prnt.sc/wa4dic
и сама ошибка : https://prnt.sc/wa4epo

непонятно
В resources/js/app.js :

Vue.use(VueNativeSock, 'ws://localhost:8081', {

и консоле запущено приложение сокета :

$ npm start
> ws--status-server@1.0.0 start /mnt/_work_sdb8/wwwroot/lar/fantasylab.io/status-socket.gotoconsult.io
> node server.js
server is running on 8081

Если это приложение не запущено то получаю ошибку раньше что нет конекта...


Приложение запускаю под локальной ubuntu 18/Apache2 хостинг

[url]http://local-ads-backend8.com/[/url]

В приложение сокета в файле server.js для локальной работы нужно раскоментировать:

/* setup local env */
var http = require('http');
var express = require('express');
var app = express();
var ws = require('ws');
var server = http.createServer(app);

/* setup prod env */
/*
const https = require('https');
const fs = require('fs');
const express = require('express');
const app = express();
var ws = require('ws');

const options = {
  key: fs.readFileSync('server.key'),
  cert: fs.readFileSync('server.crt')
};
const server = https.createServer(options, app);
*/

но полагал, что там может быть локально привязка к порту 127.0.0.1:8000, но я не нашел

Но та же ошибка если запустить локальный сервер командой

php artisan serve

с урлом

[url]http://127.0.0.1:8000[/url]

Не подскажтите почему “Error: Forbidden” и как его побороть ?
Спасибо!

Не в сети

#2 31.01.2021 19:44:18

i3bepb
Откуда: Екатеринбург
Сообщений: 20

Re: Ошибка при запуске Twillio Chat при запуске laravel 8 приложения...

Тут мне кажется нужен хороший фронтендер знающий vue js, node js, т.е. тут laravel то не влияет. С моей backend-ерской точки зрения у Вас получается некий процесс на node js, который постоянно слушает ws://localhost:8081. А сам проект работал на h ttp://local-ads-backend8.com:80 или h ttp://127.0.0.1:8000, дак вот как он там на фронте узнает адрес ws://localhost:8081, может он берет основной адрес и просто добавляет порт 8081. Тогда он пытался ходить по ws://local-ads-backend8.com:8081 и ws://127.0.0.1:8081, но это не ws://localhost:8081. Может Вам попробовать запустить проект на домене localhost ?!

Не в сети

Подвал раздела