我花了整整一天的时间访问教程网站,解释如何使用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 started”,我被卡在要求你转到这个URL的部分:
http://localhost:8080
浏览器尝试去那里但它挂了几分钟然后说: “未收到数据 无法加载网页,因为服务器没有发送任何数据。“
我不知道node.js是如何工作的,似乎没有解释它是如何工作的...... node.js在哪里安装?如果它意味着在服务器上,它如何在服务器上安装?我应该在哪里安装它来进行本地测试?什么是socket.io?应该安装在哪里?
所有我似乎都得到了node.js信息站点是代码块转储,几乎没有解释正在发生的事情。
我按照了一个youtube教程,那个人正在使用WAMP服务器,所以我想也许我需要把文件放在服务器上,所以我安装了WAMP并禁用了IIS8服务器。另一个注意事项,当我在浏览器上访问“localhost”时,它说“它有效!”这似乎是来自本地服务器的自动化消息 - 我认为它是IIS8但即使我禁用该服务,该消息也会显示。即使我安装WAMP并让它运行该消息显示。此外,WAMP也不起作用,因为php文件不运行。 Localhost总是将我带到显示该消息的页面。
这是本地服务器问题吗?
答案 0 :(得分:3)
很难对你的问题给出“回答”。我建议你从一个更基本的介绍开始绘图游戏。另外,我建议您按原样开始使用nodejs,而不必立即使用socket.io。当您了解节点的工作方式时,您可以从websockets开始。
这是节点101的一些东西:
你根本不需要WAMP。 nodjs 是服务器!
似乎你不知道什么是端口。您的节点脚本启动一个侦听端口1337的Web服务器。如果您想查看该服务器所服务的内容,您需要将浏览器指向localhost:1337
(不是端口8080,就像您尝试过的那样)
答案 1 :(得分:3)
我在github上创建了一个基本的gist,用于使用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);
答案 2 :(得分:0)
你需要('socket.io')然后创建一个连接io.sockets.on('connection',function(socket)才能使它工作