我正在尝试使用socket.io设置服务器,结果不好.
我主要关注本指南,虽然它有点过时了:http: //www.williammora.com/2013/03/nodejs-tutorial-building-chatroom-with.html
socket.io问题来了,我不确定它是客户端还是服务器端.它似乎试图不断轮询服务器,但正在回归404.这听起来像socket.io没有运行,但它看起来都没问题.它也可能与路径和"公共"目录有关,但我真的不知道.
127.0.0.1 - - [Thu, 17 Jul 2014 00:51:36 GMT] "GET /socket.io/?EIO=2&transport=polling&t=1405558296120-0 HTTP/1.1" 404 73 "http://localhost:8080/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.76.4 (KHTML, like Gecko) Version/7.0.4 Safari/537.76.4" 127.0.0.1 - - [Thu, 17 Jul 2014 00:51:37 GMT] "GET /socket.io/?EIO=2&transport=polling&t=1405558297181-1 HTTP/1.1" 404 73 "http://localhost:8080/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.76.4 (KHTML, like Gecko) Version/7.0.4 Safari/537.76.4" 127.0.0.1 - - [Thu, 17 Jul 2014 00:51:39 GMT] "GET /socket.io/?EIO=2&transport=polling&t=1405558299207-2 HTTP/1.1" 404 73 "http://localhost:8080/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.76.4 (KHTML, like Gecko) Version/7.0.4 Safari/537.76.4"
服务器
var exec = require( "child_process" ).exec; var path = require( "path" ); var morgan = require( "morgan" ); var bodyParser = require( "body-parser" ); var _ = require( "underscore" ); var express = require( "express" ); var app = express(); var http = require( "http" ).createServer( app ); var io = require( "socket.io" )( http ); app.set( "ipaddr", "127.0.0.1" ); app.set( "port", 8080 ); //support JSON, urlencoded, and multipart requests app.use( bodyParser() ); //log the requests using morgan app.use( morgan() ); //specify the Jade views folder app.set( "views", __dirname + "/../views" ); //set the view engine to Jade app.set( "view engine", "jade" ); //specify static content app.use( express[ "static" ]( "public", __dirname + "/../public" ) ); //using map-access of static so jslint won't bitch io.on( "connection", function( socket ) { console.log( "A user connected." ); });
客户
script( src="js/socket.io.js" ) var socket = io.connect( "http://localhost:8080" );
我从以下位置获取了客户端js文件:node_modules/socket.io/node_modules/socket.io-client/socket.io.js
该路径与我正在使用的教程或者说socket.io所使用的内容不匹配,所以也许这就是问题,但看起来它可能是正确的文件.
这里有什么帮助?
编辑 有关其他信息,这是我的文件夹层次结构:
Webserver/ my_modules/ server.js node_modules/ body-parser/ express/ jade/ morgan/ socket.io/ underscore/ public/ css/ js/ server.js views/ index.jade index.js package.json
my_modules文件夹中的server.js是我在服务器端启动socket.io的地方.js文件夹中的server.js是从网站连接的客户端代码.