开发学院

您的位置:首页>教程>正文

教程正文

Socket.IO Hello World

Socket.IO Hello World

  创建一个名为app.js的文件并输入如下代码:

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

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

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

  我们还需要在同一级目录建立一个index.html文件,供用户访问, 创建index.html 并输入如下代码:

<!DOCTYPE html>
<html>
  <head><title>Hello world</title></head>
  <body>Hello world</body>
</html>

  测试是否工作,请在控制台输入如下命令

nodemon app.js

  执行完上面的命令,服务器将启动并监听localhost:3000. 打开浏览器并输入localhost:3000去测试.

  代码设置我们的express应用程序,并在根目录上提供html文件。现在我们需要Socket。IO来处理链接并输出控制台信息,每次有用户链接就显示"A user connected",当有人离开或关闭此页面“A user disconnected”。

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

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

//Whenever someone connects this gets executed
io.on('connection', function(socket){
  console.log('A user connected');

  //Whenever someone disconnects this piece of code executed
  socket.on('disconnect', function () {
    console.log('A user disconnected');
  });

});

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

  require('socket.io')(http)创建一个连接到http服务器socket.io实例。io.on事件处理程序使用socket对象处理连接事件、断开连接等事件。

  我们已经设置了我们的服务器来记录连接和断开的消息。现在还需要客户端脚本,并在客户端脚本初始化Socket对象,以便客户端可以在需要时建立连接。该脚本由我们的io服务器在“/ socket.io /socket.io.js”上提供。在执行上述操作后,index.html文件将如下所示:

<!DOCTYPE html>
<html>
  <head><title>Hello world</title></head>
  <script src="/socket.io/socket.io.js"></script>
  <script>
    var socket = io();
  </script>
  <body>Hello world</body>
</html>

  如果你现在在浏览器中打开localhost:3000你将会看到hello world. 然后检查控制台,你同时也将看到如下信息:

A user connected

  如果你刷新页面将断开链接并重新建立链接. 你可以看到如下

A user connected
A user discnnected
A user connected

  现在我们的socket链接已经正常工作了.使用socket.IO可以很方便的实现这些功能