让教程SocketIO工作

我正在试图从我的域名上运行的SocketIO的例子。

我已经设法通过命令行来安装Node.JS以及ExpressJS和SocketIO。

现在,我试图让这个运行。 在服务器端我有:

(位于/ nodejs中,与/ public_html处于同一级别,不在其中)

var app = require('express')(); var server = require('http').Server(app); var io = require('socket.io')(server); server.listen(80); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); io.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); 

然后在客户端我有:

(位于/public_html/socketio.htm)

 <!DOCTYPE html> <head> <title>Socket IO Test</title> <script src="https://cdn.socket.io/socket.io-1.3.4.js"></script> <style type='text/css'> * {font-family: 'Trebuchet MS';} </style> </head> <body> <h1>Socket IO Test</h1> <script> var socket = io.connect('http://localhost/'); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); }); </script> </body> </html> 

我不明白以下问题:

1.我的node.js从哪里运行? 我应该把它放在/ public_html?

2.我无法列出端口80,我得到了使用中的错误地址。 在我看来,这是一个普通的端口用于HTTPstream量,为什么SocketIO会使用它? 还是因为我在域之外运行nodejs? 我应该创build一个子域并将我的nodejs文件(包括/ node_modules)移动到一个子域吗?

3.我可以使用什么端口? 我尝试了3000,然后更改http://localhost/http://localhost:3000但没有工作。

4.我不是在本地机器上运行,而是在我的域中运行。 我是否需要更改http://localhost/来反映? 又名http://domain.com

任何帮助将不胜感激!!

服务器端 ..

 var app = require('express')(); var express = require("express") var server = require('http').Server(app); var io = require('socket.io')(server); app.use(express.static(__dirname + '/nodejs')); server.listen(8000); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); io.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); 

客户端..

 <!DOCTYPE html> <head> <title>Socket IO Test</title> <script src="https://cdn.socket.io/socket.io-1.3.4.js"></script> <style type='text/css'> * {font-family: 'Trebuchet MS';} </style> </head> <body> <h1>Socket IO Test</h1> <script> var socket = io.connect('http://localhost:8000/'); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); }); </script> </body> </html> 

并使用目录结构如下..

  • expressocket.js
  • 的NodeJS /

      socketio.htm