我正在尝试为其他用户在javascript中执行API。我想用socket.io在Node.js中实时创建聊天,但我想通过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>
答案 0 :(得分:1)
您不必包含node.js&#34;,您需要做的是包含通过socket.io(8080服务器)连接到服务器的脚本。
这篇文章可能对您有用http server and web sockets from separate servers。
另一方面,您可以在8080服务器中包含客户端javascript,以使聊天正常运行。
已编辑以了解更多详情。
在8080上运行的服务器上,您可以使用Socket.io和Express创建服务器,在那里您可以拥有聊天的服务器端逻辑,并使用客户端逻辑提供JavaScript文件。让我们说,客户端JavaScript文件位于http://localhost:8080/yourchat.js
(当然,在某种现实世界中,您可能必须生成此文件才能向正确的用户发送数据)
在80上运行的服务器中,您将拥有div元素和带有此源的脚本标记:http://localhost:8080/yourchat.js
。使用此模式,您可以嵌入聊天