Я пытался реализовать сервер чата в node.js, используя socket.io, как указано на веб-сайте socket.io. Кажется, что все работает нормально, за исключением того, что сообщения не добавляются в список, который я сделал в HTML-коде клиента. Может ли кто-нибудь сказать мне, что я делаю неправильно?Чат-сервер с использованием socket.io, сообщение не добавляется к списку
код сервера
var express = require('express');
var soc = require('socket.io')
var http = require('http');
var ip = require('ip');
var app = express();
var server = http.createServer(app).listen(3000);
var io = soc(server);
app.get('/', function(req, res) {
res.sendFile(__dirname + "/chat.html");
});
io.on('connection', function(socket) {
var address = socket.handshake.address;
var pos = address.indexOf('1');
var len = address.length;
address = address.slice(-1 * (len - pos));
/*if(address[0] === ':') {
address = ip.address();
}*/
console.log(address + ' connected');
socket.on('disconnect', function() {
console.log(address + ' disconnected');
});
socket.on('message', function(message) {
io.emit('update', message);
});
});
код клиента
<html>
<head></head>
<body>
<form id="form" action="" style="position: absolute; bottom: 0; width: 100%;">
Chat: <input style="width: 90%;" type="text" name="chat">
<input type="submit" style="margin: 2px 50%">
</form>
<ul id="myList"></ul>
<script src="/socket.io/socket.io.js"></script>
<script>
var myList = document.getElementById('myList');
var socket = io();
var form = document.getElementById("form");
form.addEventListener("submit", function() {
socket.emit('message', form.chat.value);
});
socket.on('update', function(msg) {
var node = document.createElement('li');
var textnode = document.createTextNode(msg);
node.appendChild(textnode);
document.getElementById('myList').appendChild(node);
});
</script>
</body>
ли перезапуск сервера узла, проходя через примеры? Получаете ли вы данные в обратном вызове обновления? –
Да, поскольку я использую nodemon ... Да, я получаю данные в обратном вызове обновления. @JeremyJackson –
В обратном вызове обновления я выбрал другое событие и отправил сообщение на консоль сервера, чтобы проверить, не принимает ли im сообщение, и да, я его получаю, все еще добавление не происходит. @JeremyJackson –