gpt4 book ai didi

node.js - 让教程 SocketIO 正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 00:58:06 25 4
gpt4 key购买 nike

我正在尝试从在我的域上运行的 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/ 来反射(reflect)这一点?又名,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

关于node.js - 让教程 SocketIO 正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28686340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com