【问题标题】:Express and socket.io chat?Express 和 socket.io 聊天?
【发布时间】:2014-03-09 01:10:19
【问题描述】:

我可以设置聊天没问题,但我的问题是如何让聊天在我的主站点所在的默认port:80 上工作?

首先想到的是iframing吗?

这是我的 server.js 代码,需要注意的一点是我不太喜欢 jade,所以我将把它转换成纯 HTML。此外,聊天必须在:80 以外的任何端口上工作,所以我不太确定如何让它在除 iframe 之外的主端口上工作?

所以我的问题显然是让 express 服务器在主端口上工作的选择是什么?

// Start server
var express = require("express");
var app = express();
var port = 3700;

// Directory 
app.use(express.static(__dirname + '/chat'));


// Socket.io integration
var io = require('socket.io').listen(app.listen(port));


// Render content
app.set('views', __dirname + '/tpl');
app.set('view engine', "jade");
app.engine('jade', require('jade').__express);
app.get("/", function(req, res){
    res.render("page");
});


// Recieve msg and send
io.sockets.on('connection', function (socket) {
    socket.emit('message', { message: 'welcome to the chat' });
    socket.on('send', function (data) {
        io.sockets.emit('message', data);
    });
});

【问题讨论】:

  • 考虑通过 Node.js 在端口 80 上运行整个站点
  • 如果是这样,我可能需要打开一个新问题或更改这个问题。这似乎很容易,但我不知道该怎么做。我是否使用所有主要的 html 代码(包括聊天 html 代码)来渲染翡翠模板。这是有道理的,但是你能在 :80 上运行一个快速服务器吗?我试过了,它说它正在使用中。
  • 我的意思是基本上渲染聊天框,但添加主 index.html 中的所有代码并将其与聊天框 html 合并。然后提供该页面,当前在端口:3700 上运行,我不确定如何将其更改为默认值:80,这可能吗?
  • 为了在端口 80 上运行 Node.js 服务器,您必须在端口 80 上终止现有服务器。您还可以将服务器配置为将一些请求转发到不同内部端口上的 Node.js .
  • 哦,好吧,所以默认情况下,在 wamp/localhost 中,配置设置为在端口:80 上运行。我需要杀死/阻止它成为默认值,然后在端口:80 上使用相同的快速服务器逻辑?生病谷歌,该配置操作发生在哪里,但如果你知道随时分享:)

标签: javascript node.js sockets express


【解决方案1】:

对于这些方法,您真的不需要端口 80 上的 node-expres-jade。

节点可以只运行套接字服务器(单独)。忘记这里的快递/翡翠。

而 apache 或 nginx 可以处理所有的 de 客户端文件(html、js、css ...)。

在任何 html 上添加 var socket = io.connect('httt://yoururl:port');,它应该可以工作。

【讨论】:

  • 听起来很酷,让我试一试,到目前为止,我只是对其进行了 iframe,它工作正常,但我认为不使用 iframe 直接渲染它会更好。
  • 只需将jade翻译成html,发送到apache目录即可。
  • 我的原始代码中的 socket 变量替换了什么。我不确定?
  • 在客户端js中。
  • 我得到io is not defined,我显然不明白这里的东西。我能感觉到我们很亲近。我将所需的 HTML 添加到我的 index.html 我将 var socket = io.connect('http://localhost:80') 添加到客户端 js,并将该客户端 js 脚本包含在我的 index.html 中。也许我需要在头脑中加载那个脚本?或者可能需要了解如何让 apache 参与进来?编辑:添加到头部没有工作,哈哈,我想试试。
猜你喜欢
  • 1970-01-01
  • 2018-04-27
  • 2014-10-05
  • 2016-08-02
  • 2012-01-29
  • 2015-07-20
  • 2013-04-04
  • 2013-08-08
  • 1970-01-01
相关资源
最近更新 更多