这是一个愚蠢的问题,抱歉。所以我下载了node.js / sockets.io / express.js。试图制作一个简单的多人游戏,但目前从hello world开始。
我有以下目录结构:
-index.html
-server.js
-package.json
-node_modules/
server.js具有以下代码:
var app = require('express');
var http = require('http');
var io = require('socket.io');
/*
var server = http.createServer(function(req,res){
res.writeHead(200, {'Content-Type': 'text/html'});
res.end('<h1>Hello world</h1>');
}).listen(80);
*/
var server = http.createServer(app);
server.listen(80);
var socket = io.listen(server);
var usersCount = 0;
socket.on('conection', function(client){
++usersCount;
console.log('client connecting... client# = ' + userCount);
client.emit('onMessageReceived',{msg:"You are client number: " + userCount});
});
我的客户端代码位于index.html中,其内容为:
<html>
<head>
<title> Client Code </title>
<script src="/socket.io/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> </script>
</head>
<body>
<script>
$(document).ready(function(){
var socket = new io.Socket({'127.0.0.1',{port:80}});
socket.connect();
socket.on('connect', function(obj){
console.log('client connection successful..');
});
socket.on('onMessageReceived', function(data){
console.log("client has received message: " + data.msg);
});
});
</script>
</body>
我的package.json包含:
{
"name": "hello_world",
"version": "0.0.0",
"description": "hello world test program",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": "",
"author": "",
"license": "BSD",
"dependencies":{
"express":"3.0.5",
"http": "",
"socket.io":""
}
}
现在我不确定如何继续运行应用程序,如果我完成了。有关如何继续下一步的任何帮助。我猜现在我需要让server.js不断运行,并让多个客户端打开index.html连接到server.js。
答案 0 :(得分:1)
首先,您不希望在hello world程序中真正使用端口80,这使得它变得更难,您必须是root用户,使用端口8080而不是端口80更容易。
然后运行程序打开你的命令行并进入server.js目录并运行node server.js
然后在浏览器中打开localhost:8080,在控制台上你应该看到日志。
希望这有帮助
答案 1 :(得分:1)
我认为你没有正确宣布你的服务器。您需要创建快速服务器的实例,因为express 3.x看起来像这样
var io = require('socket.io')
, express = require('express');
var app = express()
, server = require('http').createServer(app)
, io = io.listen(server);
然后,您可以将服务器设置为侦听端口
server.listen(8080);
然后,您可以render页
app.get('/', function(req, res){
res.render('index');
});