我遇到了node.js服务器和HTML客户端的问题。
服务器代码是:
var http = require('http');
fs = require('fs');
var app = http.createServer(function(request, response) {
fs.readFile("client.html", 'utf-8', function (error, data) {
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(data);
response.end();
});
}).listen(1337);
var io = require('socket.io').listen(app);
io.sockets.on('connection', function(socket) {
socket.on('message_to_server', function(data) {
io.sockets.emit("message_to_client",{ message: data["message"]});
});
});
console.log('Server running')
客户端代码是:
<!DOCTYPE html>
<html>
<head>
<title>Rumors and speculations</title>
<script src="/socket.io/socket.io.js"></script>
<script type="text/javascript">
var socketio = io.connect("localhost", {port: 1337});
socketio.on("message_to_client", function (data) {
document.getElementById("chatlog").innerHTML = ("<hr/>" +
data['message'] + document.getElementById("chatlog").innerHTML);
});
function sendMessage() {
var msg = document.getElementById("message_input").value;
socketio.emit("message_to_server", { message: msg });
}
</script>
</head>
<body>
<input type="text" id="message_input" />
<button onclick="sendMessage()">send</button>
<div id="chatlog"></div>
</body>
</html>
我不知道它是否有所作为,但我从Visual Studio运行我的HTML(构建一个ASP.NET MVC应用程序)。
我在屏幕上输入了聊天按钮和窗口,但是当我添加一些文本并点击“发送”时,没有任何反应,也没有显示任何内容。 我错过了什么吗?我几乎敢打赌,我错过了关于服务器地址的一些内容,但我已经瞎了眼,无法找到它。
答案 0 :(得分:1)
在您的客户端代码中: 数据[&#39; message&#39;] + document.getElementById(&#34; chatlog&#34;)。 innterHTML 拼写错误。应该说 .innerHTML