Node.js Socket.io消息事件未从客户端发送到服务器

Node.js Socket.io消息事件未从客户端发送到服务器,node.js,events,socket.io,Node.js,Events,Socket.io,我在这里陷入了困境,希望能得到一些帮助。我是Node.js、Socket.io和Express的新手-我今天刚开始学习,但我进步很快。我正在尝试构建一个简单的小webchat应用程序,但遇到了一个问题。我已经设置了一个带有文本框的表单,当提交时,它会被发送到服务器,服务器会将值记录在控制台中。唯一的问题是它没有将其记录到控制台 服务器和客户端连接得很好(当客户端连接时,我有一个console.log(“client connected…”)消息),但是消息事件发射器似乎不起作用。我使用的是过时的

我在这里陷入了困境,希望能得到一些帮助。我是Node.js、Socket.io和Express的新手-我今天刚开始学习,但我进步很快。我正在尝试构建一个简单的小webchat应用程序,但遇到了一个问题。我已经设置了一个带有文本框的表单,当提交时,它会被发送到服务器,服务器会将值记录在控制台中。唯一的问题是它没有将其记录到控制台

服务器和客户端连接得很好(当客户端连接时,我有一个console.log(“client connected…”)消息),但是消息事件发射器似乎不起作用。我使用的是过时的代码吗?无效语法?我花了几个小时寻找答案,但还没有找到答案

我的应用程序分为app.js、index.html和/public/default.css

App.js:

var express = require('express');
var app = express();
var http = require('http');
var server = http.createServer(app);
var io = require('socket.io').listen(server);

io.sockets.on('connection', function(client) {
  console.log("Client connected...");
  client.on('messages', function(data) {
    console.log(data);
  });
});

app.use('/public', express.static(__dirname + '/public'));

app.get('/', function(request, response) {
response.sendfile(__dirname + "/index.html");
});

server.listen(3000);
console.log("Listening on port 3000");
index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Chatapp</title>
    <link rel="stylesheet" type="text/css" href="public/default.css"></link>
</head>
<body>
    <h1 class="title">Chatapp</h1>

    <div id="wrapper">
        <div id="online">

        </div>

        <div id="body">

        </div>

        <div id="input">
            <form id="chatform">
                <input type="text" id="message"></input>
                <input type="submit" id="send" value="Send!"></input>
            </form>
        </div>
        <div class="clear"></div>
    </div>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script src="/socket.io/socket.io.js"></script>
    <script>
        $(document).ready(function() {
            var server = io.connect('http://localhost:3000');
            $('#chatform').submit(function(e) {
                e.preventDefault();
                var message = $('#message').val();
                socket.emit('messages', message);
            });
        });
    </script>
</body>
</html>

你在更改名字,我想这会导致一些混乱。在客户端,您正在设置一个名为server的变量,但您正在调用socket.emit()。您的浏览器控制台中应该有一些错误消息,可以帮助您查找此错误。

这就是问题所在。我现在觉得有点傻,但我想你是在生活和学习。非常感谢你的帮助!只要我有足够的代表,我一定会投票给这个答案,尽管现在我只会给出反馈,这是有帮助的。
body {
  margin:  0;
  padding:  0;
  font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
}

a {
  color: #00B7FF;
}

#wrapper {
  margin: 0 auto;
  width:  940px;
  height: 500px;
  padding: 0;
  border: 1px solid #000;
}

#online {
  float: left;
  width: 188px;
  height: 480px;
  padding: 10px;
  border-right: 1px solid #000;
}

#body {
  float: left;
  width: 711px;
  height: 419px;
  padding: 10px;
  border-bottom: 1px solid #000;
}

#input {
  float: left;
  height: 60px;
  width: 731px;
}

.clear {
  clear: both;
}

h1.title {
  text-align: center;
}

input#message {
  float: left;
  margin: 0;
  width: 640px;
  height: 58px;
  border: none;
  font-size: 28px;
  padding-left: 10px;
  box-shadow: inset 1px 1px 3px rgba(0,0,0,0.3);
}

input#message:focus {
  border: none;
  outline: none;
  box-shadow: inset 1px 1px 3px #55ba57, inset -1px -1px 3px #55ba57;
}

input#send {
  float: left;
  background: #55ba57;
  color: #fff;
  border: none;
  height: 60px;
  margin: 0;
  width: 81px;
  border-left: 1px solid #000;
}

input#send:hover {
  background: #489949;
  cursor: pointer;
}

input#send:active {
  background: #1e7520;
}