我试图从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上列出,我收到了正在使用的错误地址。在我看来,这是一个用于http流量的通用端口,为什么SocketIO会使用它?或者是因为我在域外运行我的nodejs?我应该创建一个子域并将我的nodejs文件(包括/ node_modules)移动到子域吗?
3. 我可以使用哪个端口?我尝试了3000,然后将http://localhost/
更改为http://localhost:3000
,但这不起作用。
4. 我没有在本地计算机上运行,而是在我的域上运行。我是否需要更改http://localhost/
才能反映出来?阿卡,http://domain.com
?
非常感谢任何帮助!!
答案 0 :(得分:1)
服务器端..
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>
并使用目录结构如下..
的NodeJS /
socketio.htm