如何将node.js包含到静态html

时间:2016-11-08 14:48:17

标签: javascript html node.js html5 socket.io

我正在尝试为其他用户在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>

1 个答案:

答案 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。使用此模式,您可以嵌入聊天