0

我几乎整天都在访问教程网站,解释如何使用 nodejs 和 sockoets.io,但我无法得到任何工作。

我已经设法至少运行了一个 js 文件:

node filename.js

但它并不完全有效。它一直运行到到达“var server = net...”行,因为“console.log(“hello”)”行不执行:

var net = require('net');

var server = net.createServer(function (socket) {
    console.log("hello");
  socket.write('Echo server\r\n');
  socket.pipe(socket);
});
console.log("hello");
server.listen(1337, '127.0.0.1');

这是我从官方 node.js 网站主页获得的: http ://nodejs.org/

所有教程都声称它就是这么简单。

我刚刚尝试按照本教程进行操作,尽管其中很多都略过了我坚持的部分(实际安装): http ://tutorialzine.com/2012/08/nodejs-drawing-game/

所以按照上面的教程,我从控制台运行 app.js,我收到一条消息“socket.io 已启动”,我卡在它要求你访问这个 URL 的部分:

http://localhost:8080

浏览器试图去那里,但它挂了几分钟然后说:“没有收到数据无法加载网页,因为服务器没有发送数据。”

我不知道 node.js 是如何工作的,似乎也没有解释它是如何工作的...... node.js 安装在哪里?如果它打算在服务器上,它是如何安装在服务器上的?我应该在哪里安装它以进行本地测试?什么是socket.io?那应该安装在哪里?

我似乎在 node.js 信息网站上得到的只是代码块转储,几乎没有解释发生了什么。

我遵循了一个 youtube 教程,那个人正在使用 WAMP 服务器,所以我想也许我需要将文件放在服务器上,所以我安装了 WAMP 并禁用了 IIS8 服务器。另一个注意事项,当在我的浏览器上访问“localhost”时,它会显示“它可以工作!” 这似乎是来自本地服务器的自动消息 - 我以为是 IIS8,但即使我禁用了该服务,该消息也会显示。即使我安装了 WAMP 并让它运行该消息也会显示。此外,WAMP 也不起作用,因为 php 文件无法运行。本地主机总是将我带到显示该消息的页面。

这是本地服务器问题吗?

4

3 回答 3

3

我在 github 上创建了一个使用 socket.io + node + express的基本要点

制作 socket.io 应用程序的最低工作环境是这样的:

var express = require('express'),
    app = express(),
    http = require('http'),
    server = http.createServer(app),
    io = require('socket.io').listen(server);

app.get('/', function(req, res) {
  res.send('<!doctype html> \
            <html> \
            <head><meta charset="utf-8"></head> \
            <body> \
                 <center>Welcome to <strong>socket.io</strong></center> \
                 <script src="/socket.io/socket.io.js"></script> \
                 <script> \
                    var socket = io.connect(); \
                    socket.emit("message", "Howdy"); \
                    setInterval(function () { \
                        socket.emit("message", "Ping"); \
                    }, 1000); \
                 </script> \
            </body> \
            </html>');
  });

  io.sockets.on('connection', function (socket) {
     socket.on('message', function(msg) {
        console.log(msg);
     });
  });

  server.listen(8000);
于 2013-05-04T19:14:50.877 回答
3

很难对您的问题给出“答案”。我建议您从比绘图游戏更基本的介绍开始。另外,我建议你从 nodejs 开始,不要马上使用 socket.io。当您了解节点的工作原理后,您可以从 websockets 开始。

这是一些节点 101 的东西:

您根本不需要 WAMP。nodjs服务器!

您似乎不知道端口是什么。您的节点脚本启动了一个侦听端口 1337 的网络服务器。如果您想查看该服务器提供的服务,您需要将浏览器指向localhost:1337(不是端口 8080,正如您尝试的那样)

于 2013-05-04T17:44:22.630 回答
0

你需要 require('socket.io') 然后创建一个连接 io.sockets.on('connection', function (socket) 以使其工作

于 2013-05-04T19:14:01.060 回答