4.2 KiB
4.2 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
589fc832f9fc0f352b528e79 | Send and Display Chat Messages | 2 | Отправка и отображение сообщений чата |
Description
$('form').submit(function(){ /*logic*/ });
) В коде, который вы обрабатываете отправку формы, вы должны выпустить событие после определения «messageToSend», но перед
#m
текстового поля #m
. Событие должно быть названо «сообщение чата», и данные должны быть просто «messageToSend». socket.emit('chat message', messageToSend);
Теперь на вашем сервере вы должны слушать сокет для сообщения чата с сообщением «сообщение». Как только событие будет получено, оно должно затем передать сообщение чата всем io.emit
с данными, являющимися объектом, содержащим «имя» и «сообщение». Теперь, на вашем клиенте, вы должны теперь прослушать «сообщение чата», а при его получении добавьте элемент списка в #messages
с именем двоеточие и сообщение! В этот момент чат должен быть полностью функциональным и отправлять сообщения всем клиентам! Представьте свою страницу, когда вы думаете, что у вас все в порядке. Если вы столкнулись с ошибками, вы можете проверить проект до этого момента здесь для сервера и здесь для клиента . Instructions
Tests
tests:
- text: 'Сервер прослушивает «сообщение чата», затем испускает его правильно'
testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js") .then(data => { assert.match(data, /socket.on.*("|")chat message("|")[^]*io.emit.*("|")chat message("|").*name.*message/gi, "Your server should listen to the socket for "chat message" then emit to all users "chat message" with name and message in the data object"); }, xhr => { throw new Error(xhr.statusText); })'
- text: Клиент корректно обрабатывает и отображает новые данные из сообщения чата "
testString: 'getUserInput => $.get(getUserInput("url")+ "/public/client.js") .then(data => { assert.match(data, /socket.on.*("|")chat message("|")[^]*messages.*li/gi, "You should append a list item to #messages on your client within the "chat message" event listener to display the new message"); }, xhr => { throw new Error(xhr.statusText); })'
Challenge Seed
Solution
// solution required