Nodejs模块之socket IO介绍

Nodejs模块之socket IO介绍

什么是 Socket.IO? Socket.IO的为了在浏览器和移动设备上创建实时应用而产生的,它可以模糊不同传输机制之间的差异。server端代码: var io = require(‘socket.io’).listen(80);

  io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
    socket.on('my other event', function (data) {
     console.log(data);
     });
   });

客户端代码:

<script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect(‘http://localhost’); socket.on(‘news’, function (data) { console.log(data); socket.emit(‘my other event’, { my: ‘data’ }); }); </script>

怎么用 socket.io 安装 npm install socket.io 利用Node http server 模块 对于这个例子,简单的使用“npm install socket.io” 服务端(app.js) var app = require(‘http’).createServer(handler) , io = require(‘socket.io’).listen(app) , fs = require(‘fs’)

  app.listen(80);

function handler (req, res) { fs.readFile(__dirname + ‘/index.html’, function (err, data) { if (err) { res.writeHead(500); return res.end(‘Error loading index.html’); }

res.writeHead(200); res.end(data); });

}

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

客户端(index.html)

<script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect(‘http://localhost’); socket.on(‘news’, function (data) { console.log(data); socket.emit(‘my other event’, { my: ‘data’ }); }); </script>


4 回复

Nodejs模块之Socket.IO介绍

什么是 Socket.IO?

Socket.IO 是一个用于实现实时双向通信的库,它可以在浏览器和服务器之间建立持久连接。它抽象了各种不同的传输方式,使得开发者可以专注于业务逻辑而不是底层网络细节。

安装

首先,需要安装 socket.io 模块。你可以通过 npm 来安装:

npm install socket.io

服务端代码

以下是一个简单的服务端代码示例,展示了如何设置一个基本的 HTTP 服务器,并使用 Socket.IO 处理客户端连接:

// 引入所需的模块
var http = require('http');
var fs = require('fs');
var io = require('socket.io');

// 创建HTTP服务器
var app = http.createServer(function(req, res) {
  fs.readFile(__dirname + '/index.html', function(err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading index.html');
    }
    res.writeHead(200);
    res.end(data);
  });
}).listen(80);

// 监听客户端连接事件
io = io.listen(app);
io.sockets.on('connection', function(socket) {
  // 向新连接的客户端发送一条消息
  socket.emit('news', { hello: 'world' });

  // 监听客户端发来的消息
  socket.on('my other event', function(data) {
    console.log(data);
  });
});

客户端代码

在客户端,你需要引入 Socket.IO 库并连接到服务器。以下是客户端的 HTML 文件示例:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Socket.IO Example</title>
</head>
<body>
  <script src="/socket.io/socket.io.js"></script>
  <script>
    var socket = io.connect('http://localhost');
    
    // 监听服务器发来的消息
    socket.on('news', function (data) {
      console.log(data);
      
      // 向服务器发送一条消息
      socket.emit('my other event', { my: 'data' });
    });
  </script>
</body>
</html>

总结

以上代码展示了如何使用 Socket.IO 实现一个简单的实时应用。通过 Socket.IO,你可以在浏览器和服务器之间实现双向通信,从而构建出更丰富的实时应用体验。希望这个简单的示例能够帮助你快速上手 Socket.IO 的使用。


你就把首页的example copy一下无任何原创有意思吗?

的确… 楼主, 大部分论坛上的看文档的能力还是有的 我们整理一下 Wiki 之后大概需要对一些文档进行粗略翻译, 希望加入

Node.js 模块之 Socket.IO 介绍

Socket.IO 是一个用于在浏览器和服务器之间实现实时、双向通信的库。它支持多种传输方式,如 WebSocket、XHR-polling 等,确保了跨浏览器兼容性和最优性能。

安装

首先需要通过 npm 安装 Socket.IO

npm install socket.io

服务端代码

以下是一个简单的 Node.js HTTP 服务器,结合 Socket.IO 实现基本功能:

// app.js
var http = require('http');
var fs = require('fs');
var io = require('socket.io');

var server = http.createServer(function(req, res) {
  fs.readFile(__dirname + '/index.html', function(err, data) {
    if (err) {
      res.writeHead(500, {'Content-Type': 'text/plain'});
      res.end('Error loading index.html');
    } else {
      res.writeHead(200, {'Content-Type': 'text/html'});
      res.end(data);
    }
  });
});

server.listen(80);

var socket = io.listen(server);

socket.sockets.on('connection', function(socket) {
  socket.emit('news', { hello: 'world' });

  socket.on('my other event', function(data) {
    console.log(data);
  });
});

客户端代码

在客户端,需要引入 Socket.IO 的客户端库,并监听和发送消息:

<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Socket.IO Example</title>
</head>
<body>
  <script src="/socket.io/socket.io.js"></script>
  <script>
    var socket = io.connect('http://localhost');

    socket.on('news', function(data) {
      console.log(data);
      socket.emit('my other event', { my: 'data' });
    });
  </script>
</body>
</html>

示例解释

  1. 服务端:创建了一个 HTTP 服务器,并使用 socket.io 监听连接。每当一个新的客户端连接时,服务器会发送一条 news 消息给客户端。
  2. 客户端:加载 HTML 文件,并通过 Socket.IO 连接到服务器。当接收到 news 消息时,会在控制台输出消息内容,并向服务器发送 my other event 事件。

通过这种方式,你可以在浏览器和服务器之间建立实时通信,实现更丰富、更动态的应用体验。

回到顶部