使用Node js聊天应用程序(使用socket.io)

时间:2016-01-08 08:06:27

标签: node.js socket.io

我是Node js的新手,正在开发一个聊天应用程序,参考http://socket.io/get-started/chat/中给出的示例。在此聊天应用程序中,客户端(浏览器)将请求发送到服务器并在成功时连接。服务器代码如下所示

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
 res.sendfile('chat.html');
});

io.on('connection', function(socket){
  console.log('a user connected');
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});

客户端代码:chat.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Welcome to chat</title>
<script>
 var io = require('socket.io-client');
 var socket = io.connect('http://localhost:3000', {reconnect: true});
 socket.on('connect', function(socket) { 
        console.log('Connected!');
 });
</script>
</head>
<body>
<ul id="messages"></ul>
<form action="">
  <input id="m" autocomplete="on" /><button>Send</button>
</form>
</body>
</html>

现在,当我运行应用程序(使用eclipse)并将浏览器指向localhost:3000时,我收到消息'正在监听*:3000',我得到了chat.html页面,但是我从来没有收到消息'用户连接的'。我的意思是这里的客户端没有连接到服务器套接字,因此我没有在控制台中显示上述消息。我尽我所能。任何建议都会有很大帮助。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您无法在前端使用require

var io = require('socket.io-client');

使用

<script src="/socket.io/socket.io.js"></script>