Evgeniy
Что у тебя уже есть?
socket.on('message', function (mes) { socket.broadcast.emit('message',$('#message').val()); }); - клиент socket.on('message', function (mes) { console.log(mes); }) - сервер
Evgeniy
Что у тебя уже есть?
понимаю, что дичь это.
Vl
сервер: io.on('connection', socket => { socket.on('message', data => { socket.broadcast.emit('message', data); }) }) клиент: const socket = io.connect('url', {}), socket.on('message', data => console.log(data))
Vl
ну и с клиента socket.emit('message')
Vl
должно работать, но в чем-то могу ошибаться. Если что - скрины ошибок в студию.
Evgeniy
ну и с клиента socket.emit('message')
а socket.broadcast.emit должен работать?
Vl
ты создаешь событие на сервер, а сервер уже отправляет его всем.
Vl
не ты с браузера делаешь broadcast
Vl
а с сервера
Evgeniy
а с сервера
а Вы прислали код в стандарте ECMA?
Vl
ну там есть стрелочные функции es6
Vl
а что?
Evgeniy
ну там есть стрелочные функции es6
просто idea подчёркивает) надо настроить)) спасибо
Vl
работает?
Evgeniy
работает?
сейчас)
Evgeniy
работает?
SyntaxError: missing = in const declaration
Vl
SyntaxError: missing = in const declaration
Это на клиенте? В браузере верно?
Vl
а можно скрин кода?
Vl
попробуй const socket = io('url')
Vl
на клиенте
Evgeniy
попробуй const socket = io('url')
сейчас))) заметил правда одну ошибку у себя)) порт не дописал сейчас исправлю)
Vl
var socket = io('http://localhost'); socket.on('message', function (data) { console.log(data); });
Vl
socket.emit('message, { my: 'data' });
Kons
Там запятая на пятой строке.
Evgeniy
var socket = io('http://localhost'); socket.on('message', function (data) { console.log(data); });
а если можно расписать, что каждая функция делает?))) если можно конечно)) спасибо заранее
Vl
var socket = io('http://localhost'); грубо говоря создаешь обьект socket.io, который подключается к твоему серверу. socket.on('message', function (data) { console.log(data); }); слушатель событий. Срабатывает тогда, когда от твоего сервера пришло событие message socket.emit('message, { my: 'data' }); бросает событие на сервер
Vl
Надо. Если ты хочешь по нажатию кнопки получить из поля значение и потом отправить его - то надо.
Evgeniy
Надо. Если ты хочешь по нажатию кнопки получить из поля значение и потом отправить его - то надо.
Спасибо))) а на сервере, чтобы отправить полученные данные просто в socket.broadcast.emit?)))
Vl
broadcast - отправит данные всем, кроме тебя.
Vl
Чтобы отправить только одному человеку - надо писать что-то типа io.to(ид сокета).emit('message', {})
Evgeniy
Надо. Если ты хочешь по нажатию кнопки получить из поля значение и потом отправить его - то надо.
var socket = io('http://localhost:8889'); socket.on('message', function (data) { console.log(data); }); $(document).ready(function(){ $('button').click(function(){ socket.emit('message', { my: $('#message').val() }); }) }); - клиент server.listen('8889'); app.get("/", function (req, res) { res.sendfile('/home/katya/projects/chat/client/index.html') }); io.sockets.on('connection', function (socket) { socket.on('eventServer', function (data) { console.log(data); socket.emit('eventClient', { data: 'Hello Client' }); }); socket.on('disconnect', function () { console.log('user disconnected'); }); socket.on('message', function(dat){ socket.broadcast.emit('message',dat); }) }); - сервер
Evgeniy
broadcast - отправит данные всем, кроме тебя.
а не подскажите, в видео видел, что можно как-то сделать, если сбщ дошло до сервера, можно вызвать callback. Это третьим арументом в emit?
Gleb
а не подскажите, в видео видел, что можно как-то сделать, если сбщ дошло до сервера, можно вызвать callback. Это третьим арументом в emit?
Да. Но вообще просто глянь в документацию. На сервере можно сделать то же самое и через callback передать данные на клиент. Получится такой запрос -> ответ.
Evgeniy
Да. Но вообще просто глянь в документацию. На сервере можно сделать то же самое и через callback передать данные на клиент. Получится такой запрос -> ответ.
$(document).ready(function(){ $('button').click(function(){ var text = $('#message').val(); socket.emit('message', { message: text }, function(data){ $('#id').append('<div style="text-align: right">'+text+'</div>') }); }) }); а не подскажите? почему может не работаь этот код? отправляю сообщение. Оно доходит до другого клиента, а у меня не добавляется
V
может ты пойдешь в чат по ЖС-у все таки?
I
Можно ли как-нибудь в mongoose конвертировать схему с ObjectId в документ из бд?
I
чтобы отсылать не ид, а объект
I
populate понял
Vl
А не подскажите, id сокета устанавливается здесь - socket.join?
каждый раз когда срабатывает событие io.on('connection', socket => { //из обьекта socket - можно получить его id const sokcetID = socket.id //далее его можно записать в какой-то пулл всех сокет id и id в вашей системе. Но это уже другая история })
Vl
где именно вы это пытаетесь использовать?
Vl
Это работает на сервере только
Evgeniy
Это работает на сервере только
ааа))) спасибо Вам большое))
I
Кто-нибудь знает, можно ли сделать отдельный конфиг eslintrc для отдельной директории?
I
Не могу найти в интернете
Vl
Не. С таким не сталкивался.
I
Прокатило просто положить в эту директорию другой файл конфигурации)
Dmitry
Йо. Всем привет. Подскажите плиз. В цикле выполняется ассинхронно функция и лезит к базе, результат пушу в массив. В не цыкла массив резултата само собой пустой из за ассинхронности, подскажите как дождатся в цыкле выполнение первой функции и только потом переходить в следущей.
Yaroslav 🇺🇦
Оборачивать то что лезет к базе в промисы, чайнить их один за другим, написать фабрику для них или асинк/авейт
сomorsiс
почитай async/await
Alik
Ребята, а что вы используете для API Gateway когда пилите микросервисное приложение?
Дима
Future
Vl
Гайс вопросик. Смотрите. Сейчас у меня nginx по roud-robin кидает запросы между двумя серверами по их ip. Хотел бы переехать на heroku. Но тоже юзать от 3 серверов с проектом. Аля балансировка. Но heroku не дает ip а только dns имя. Как бы сделать так чтобы nginx сам резолвил его и сделать как upstream много таких серверов
Vl
Прописать DNS для nginx
можно чуток подробнее?
Vl
я забил на все и сделал: upstream backend { server some.com server 127.0.0.1:8080; server xx.xxx.xxx.x:8080; }
Vl
оно резолвит some.com - но когда доходит дело до аплоада файлов ругается сам хероку. Хотя, если загружать обращаясь на прямую к нему - все гуд
Vl
а если через. cloudFlare -> Nginx -> Heroku Node не работает
Vl
Щас.
Vl
отадает эту страницу
Vl
https://www.herokucdn.com/error-pages/no-such-app.html
Vl
а если делать любые другие запросы - все гуд
Sergey
Магия