【发布时间】:2013-11-30 03:35:14
【问题描述】:
您好,我正在尝试使用 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”继续下去呢?
【问题讨论】:
-
“客户端脚本应该如何到达浏览器?” 真的吗?我觉得你想太多了。您将客户端 sn-p 放在您提供给客户端的任何 HTML 页面中,就像所有其他 JavaScript 片段(...它不是您的 Node 应用程序的一部分)。
-
好的,谢谢,您回答“客户端部分如何进入浏览器”部分 - 它使用单独的 Web 服务器。
-
它被分成三个部分,因为它们做了三个完全独立的事情。
标签: node.js socket.io engine.io