hw06_chat.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. const socket = io("http://localhost:4000");
  2. // const socket = io("http://192.168.1.217:4000/");
  3. users = []; // кто тут в чате
  4. let nick;
  5. while (!(nick = prompt("Введите свой ник:"))) {}
  6. nickId.value = nick;
  7. socket.emit("msg", {
  8. nick: nickId.value,
  9. message: "---Я тут новенький!!!---",
  10. });
  11. nickId.setAttribute("readonly", "readonly");
  12. // отправка сообщения в чат при нажатии Enter в поле ввода сообщения
  13. msgId.addEventListener("keydown", function (e) {
  14. if (e.keyCode === 13) {
  15. sendId.onclick();
  16. }
  17. });
  18. function reciveMsg(msg) {
  19. debugger;
  20. console.log(msg);
  21. if (msg.nick === "--Администрация--") {
  22. chatWindow.innerHTML += "<br/>" + msg.nick + ": " + msg.message;
  23. users.length = 0;
  24. socket.emit("msg", {
  25. nick: nickId.value,
  26. message: "$$_iAm_$$",
  27. });
  28. } else if (msg.message !== "$$_iAm_$$") {
  29. chatWindow.innerHTML += "<br/><b>" + msg.nick + ":</b> " + msg.message;
  30. }
  31. chatWindow.scrollTop = chatWindow.scrollHeight; // прокрутка скрола чата
  32. if (!~users.indexOf(msg.nick) && msg.nick !== "--Администрация--") {
  33. users.push(msg.nick);
  34. users.sort((a, b) => (a < b && -1) || 1);
  35. whoIsHere.innerHTML = "Кто у нас тут в чате:";
  36. for (i of users) {
  37. whoIsHere.innerHTML += "<br/><b>" + i + "</b>";
  38. }
  39. // whoIsHere.scrollTop = whoIsHere.scrollHeight;
  40. }
  41. }
  42. socket.on("msg", (msg) => reciveMsg(msg));
  43. sendId.onclick = () => {
  44. socket.emit("msg", {
  45. nick: nickId.value,
  46. message: msgId.value,
  47. });
  48. msgId.value = "";
  49. };