node.js - 需要 Engine.IO 教程

标签 node.js socket.io engine.io

<分区>

您好,我正在尝试使用 Engine.IO。 正如 StackOverflow 上所述,它应该是 Socket.IO 的低级版本。它也应该更好和更新。它还应该让我能够轻松地在浏览器客户端和 Node.js 服务器之间交换消息。呵呵。

我从上到下阅读了这两页:

https://github.com/LearnBoost/engine.io

https://github.com/learnboost/engine.io-client

但这并没有帮助,这些手册似乎是为已经知道如何使用该技术的人编写的,而不是为正在尝试学习它的人编写的。连最基本的部分都不见了。

客户端脚本应该如何到达浏览器?

我应该在浏览器中输入“hello world”的登陆地址是什么?

入门的分步说明?

求助!当你尝试学习这样的东西时,这并不容易!

客户端脚本应该是这样的:

<script src="/path/to/engine.io.js"></script>
<script>
  var socket = new eio.Socket('ws://localhost/');
  socket.on('open', function () {
    socket.on('message', function (data) { });
    socket.on('close', function () { });
  });
</script>

但现在那是什么?索引.html?这是什么意思呢?如何使用它?

现在是“服务器”部分:

(A) Listening on a port

var engine = require('engine.io')
  , server = engine.listen(80)

server.on('connection', function (socket) {
  socket.send('utf 8 string');
});
(B) Intercepting requests for a http.Server

var engine = require('engine.io')
  , http = require('http').createServer().listen(3000)
  , server = engine.attach(http)

server.on('connection', function (socket) {
  socket.on('message', function () { });
  socket.on('close', function () { });
});
(C) Passing in requests

var engine = require('engine.io')
  , server = new engine.Server()

server.on('connection', function (socket) {
  socket.send('hi');
});

// …
httpServer.on('upgrade', function (req, socket, head) {
  server.handleUpgrade(req, socket, head);
});
httpServer.on('request', function (req, res) {
  server.handleRequest(req, res);
});

为什么分成三部分?哪一个对应于客户端示例?也许我听起来很蠢,但是如何让“hello world”运行起来呢?

最佳答案

我建议您阅读以下书籍,它会消除您的一些顾虑。 “http://www.nodebeginner.org/”。

然后尝试按照书上的内容制作您的第一个 NodeJS 应用程序,以便您了解其背后的想法。

之后继续使用“socket.io”并在本教程“http://net.tutsplus.com/tutorials/javascript-ajax/real-time-chat-with-nodejs-socket-io-and-expressjs/”的帮助下创建一个简单的应用程序。

在那之后,我相信您不会对 engine.io 有任何疑问,您将能够继续您的项目。 在不了解“NodeJS”和“socket.io”的情况下跳转到 engine.io 有一个艰难的学习曲线。

关于node.js - 需要 Engine.IO 教程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20023158/

相关文章:

mysql - 如何在 NodeJS 的变量中存储 "count(*)"值?

javascript - Socket.io 按钮监听器无法在移动设备上工作

websocket - Engine.io 或 SockJS,选择哪一个?

javascript - Node.js + Socket.io |在服务器上设置自定义 header

node.js - 什么时候使用 socket.io ?什么时候使用简单的 Http 调用?

node.js - 一起发送 JSON 和 blob

node.js - 使用 Passport.js 进行身份验证 通过 Nginx 提供声明内容

javascript - 如何 promise 这段 Mongoose 代码?

javascript - 回调和变量范围

javascript - Node : Writing a base64 source to an image file