io.on('connection', function (socket) {
socket.emit('news', { hello: 'world' }); // Объект
socket.on('my other event', function (data) {
console.log(data);
});
});
// Пример из документации
client.broadcast.emit("hello", {
hello: `Привет от ${data}!`
});
client.emit("hello", {
hello: `Привет ${data}!`
});
const app = require("express")();
const http = require("http").Server(app);
const io = require("socket.io")(http);
app.set("view engine", "pug");
app.use(require("express").static(__dirname + "/public"));
app.get("/", (req, res) => {
res.render("page");
});
io.on('connection', client => {
client.on("send", data => {
io.emit("message", {
message: data.message
});
});
client.on("hello", data => {
client.emit("message", {
message: `--- Добро пожаловать в чат, ${data.name}`
});
// client.broadcast.emit("message", { // Не работает!!!
// message: `--- ${data.name} присоединился к чату`
// });
io.emit("message", { // Отправляем сообщение всем пользователям без исключения
message: `--- ${data.name} присоединился к чату`
});
});
});
http.listen(3000);
window.onload = () => {
const socket = io.connect("http://localhost:3000");
const field = document.querySelector("#field");
const form = document.querySelector("#form");
const content = document.querySelector("#content");
let messages = [];
const name = prompt("Как вас зовут?", "Гость");
if (name) {
socket.emit("hello", {
name: name
});
}
form.addEventListener("submit", event => {
event.preventDefault();
const text = field.value;
socket.emit("send", {
message: text
});
}, false);
socket.on("message", data => {
if (data.message) {
messages.push(data.message);
let html = "";
for (let message of messages) {
html += message + "<br>";
}
content.innerHTML = html;
} else {
console.log("Error");
}
});
};