2013-05-04 52 views
0

我花了整整一天的时间访问教程网站,解释如何使用nodejs和sockoets.io,但我无法获得任何工作。设置node.js和sockets.io

我已成功地至少运行一个js文件:

node filename.js 

但它不完全工作。它运行,直到它达到“VAR服务器=净......”自“的console.log(”你好“)”逐行不执行:

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/

所以按照上面的教程中,我运行的应用程序。从控制台js和我得到一个消息“socket.io开始”,我陷在其中,它要求你去这个网址的一部分:

http://localhost:8080 

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

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

所有我似乎得到的node.js信息网站都是代码块转储,很少有解释发生了什么。

我跟着他们使用WAMP服务器的YouTube教程,所以我想也许我需要将文件放在服务器上,所以我安装了WAMP并禁用了IIS8服务器。另一个说明,当在我的浏览器上访问“localhost”时,它说“它有效!”这似乎是来自本地服务器的自动化消息 - 我认为它是IIS8,但即使我禁用该服务,该消息也会显示。即使我安装WAMP并让它运行该消息显示。另外,WAMP也不能工作,因为PHP文件不运行。 Localhost总是把我带到显示该消息的页面。

这是一个本地服务器的问题?

+0

在阅读你的问题时,我意识到你对服务器没什么想法。 WAMP(Apache)IIS和node.js都是服务器。只需选择一个并学习。看看他们了解更多的常见问题。对于node.js,请参阅http://stackoverflow.com/questions/1884724/what-is-node-js和http://stackoverflow.com/questions/2353818/how-do-i-get-started-with-node -js – user568109 2013-05-04 21:24:50

回答

3

很难对您的问题给出“答案”。我会建议你从绘图游戏的一个更基本的介绍开始。另外,我建议你按照原样使用nodejs,而不要立即使用socket.io。当你了解节点的工作方式时,你可以从websocket开始。

下面是一些节点101的东西:

你不应该需要WAMP的。nodjs 服务器!

看来你不知道什么端口。您的节点脚本启动一个监听端口1337的Web服务器。如果您想查看服务器提供的服务,则需要将您的浏览器指向localhost:1337(不是端口8080,因为您尝试过)

+1

感谢那些链接luksch,我正在阅读第一篇文章,并且有一些工作(Hello world)。确实,我不知道端口是什么,但端口8080的一段代码是用于听取端口8080的另一个教程。我很抱歉,我只是不明白node.js是如何作为服务器的。我知道你是对的,但在我看来没有任何意义。我只需要除魔术并继续前进。 – user1809104 2013-05-04 18:00:28

+0

我觉得你只是从不同的教程中获得了几行。 nodejs实际上不是很神奇。它只是把JavaScript语言带到服务器。一旦你了解事件循环,一切都会落实到位。服务器只是一个在计算机上运行的程序。没有更多,没有更多。 – luksch 2013-05-04 19:03:58

0

您需要('socket .io'),然后创建一个连接io.sockets.on('连接',功能(套接字),以使其工作

3

我创建了一个基本的gist在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);