【发布时间】:2016-11-08 14:48:17
【问题描述】:
我正在尝试在 javascript 中为其他用户做 API。我想在 Node.js 中使用 socket.io 实时创建一个聊天,但我想有机会通过 javascript 在通用 HTML 中加载这个 API。例如,如果有人将简单的 js 脚本复制并粘贴到您的 html 中,则会加载聊天。
我的应用程序在端口 8080 上的节点中运行,而我的其他页面是端口 80 上的 html。 如何将 node.js 放在其他页面中?
下面是我的chat.js
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var cors = require('cors');
app.use(cors());
app.options('*', cors());
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
socket.on('chat message', function(msg){
console.log('the user wrote:' +msg);
io.emit('chat message', msg, id);
});
});
http.listen(8080, function(){
console.log('listening on *:8080');
});
这样我尝试加载:
<script>
$.ajax({
xhrFields: {
withCredentials: true
},
dataType: "html",
url: "http://127.0.0.1:8080/index.js"
}).done(function(data){
// next function here;
});
</script>
【问题讨论】:
-
你试过把
:8080放在网址里吗? -
是的,我可以在 8080 端口上正常运行 node.js。但我想要一个在端口 80 上运行的简单网站,并将这个聊天作为 API 包含在内,例如作为 javascript。我不能在节点服务。
-
... 所以你在端口 80 上有一个 HTML 页面,并使用包含 :8080 的 URL 加载聊天。这有什么问题?
-
或者您是否尝试运行 Socket.IO 服务器而不运行支持它的服务器?
-
不,一开始我运行节点。
标签: javascript node.js html socket.io