使用不带端口的Node js库Socket io

毗湿奴

因此,我是nodeJs和io套接字的完整入门者。我已经在服务器中同时安装了一个示例chat application

所以它的工作原理就像..如果我访问的http://domain.com:3000所有程序都正常...但是可以将index.html上载到其他任何地方吗?例如http://domain.com/chat/,在客户端文件中插入以下代码。

 var connection = new WebSocket('ws://domain.com:3000');

我的客户代码

<html>
<head>
    <title>Chat with socket.io and node.js</title>
    <style>
        #chat{
            height:500px;
        }
    </style>
</head>
<body>
    <div id="chat"></div>
    <form id="send-message">
        <input size="35" id="message"></input>
        <input type="submit"></input>
    </form>

    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script src="/socket.io/socket.io.js"></script>
    <script>
        jQuery(function($){
            var socket = io.connect();
            var $messageForm = $('#send-message');
            var $messageBox = $('#message');
            var $chat = $('#chat');

            $messageForm.submit(function(e){
                e.preventDefault();
                socket.emit('send message', $messageBox.val());
                $messageBox.val('');
            });

            socket.on('new message', function(data){
                $chat.append(data + "<br/>");
            });
        });
    </script>
</body>
</html>

我的服务器代码

var express = require('express'),
    app = express(),
    server = require('http').createServer(app),
    io = require('socket.io').listen(server);

server.listen(3000);

app.get('/', function(req, res){
    res.sendfile(__dirname + '/index.html');
});

io.sockets.on('connection', function(socket){
    socket.on('send message', function(data){
        io.sockets.emit('new message', data);
    });
});
斯奎因

您应该考虑将其nginx用作反向代理。拥有nginx出色的优势,例如能够快速提供静态文件的能力。它还经过了测试,为高并发性而构建,并使用基于事件循环的相同方法进行I / O。当您想要扩展应用程序时,可以轻松设置nginx以在一组应用程序之间实现负载平衡。

如果要维护完整的Node.js堆栈,还可以查看一下node-http-proxy并将其用作反向代理/负载均衡器。但是,由于需要通过userland进行文件访问,因此nodejs对于静态文件的效率不高。nginx用于sendfile(1)绕过用户领域并直接与内核一起使用。

tl; dr

您需要反向代理

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node.js-在同一端口上使用Socket.io和Express

来自分类Dev

无法使用ssl打开node.js + socket.io端口

来自分类Dev

Sails.js-如何更改Socket.io使用的端口

来自分类Dev

无法使用Lighttpd访问Raspberry Pi上的socket.io.js [Node.JS&Socket.IO]

来自分类Dev

Socket.io与Node.js

来自分类Dev

Socket.IO/Node.JS执行

来自分类Dev

Node.JS socket io 连接

来自分类Dev

Node.js,socket.io和mongojs-使用socket.io登录表单

来自分类Dev

在Express JS中使用Socket IO

来自分类Dev

在Express JS中使用Socket IO

来自分类Dev

Node.js和Socket.io-动态socket.on()

来自分类Dev

使用node.js + socket.io发送通知

来自分类Dev

使用Cordova表达Node.js socket.io

来自分类Dev

在Node.js中使用socket.io的奇怪错误

来自分类Dev

使用node.js和socket.io的私人聊天

来自分类Dev

端口443(HTTPS TLS / SSL)上的Node.js + Express.js + Socket.io

来自分类Dev

端口443(HTTPS TLS / SSL)上的Node.js + Express.js + Socket.io

来自分类Dev

Django模板中的socket.io-node.js不服务socket.io.js

来自分类Dev

找不到Socket.io.js(node.js + express + socket.io)

来自分类Dev

在openshift上使用socket.io和node.js时,即使指定了端口8000,也无法连接到端口8080错误

来自分类Dev

如何使用socket.io访问mysql数据库

来自分类Dev

在Android上使用socket.io客户端库

来自分类Dev

Node.js Socket.IO客户端未处理的socket.io URL

来自分类Dev

Node.js Socket.IO客户端``未处理的socket.io URL''

来自分类Dev

部署到heroku时,如何使我的node / socket.io应用使用正确的端口?

来自分类Dev

部署到heroku时,如何使我的node / socket.io应用使用正确的端口?

来自分类Dev

无法使用node.js加载socket.io:未定义io

来自分类Dev

无法使用node.js加载socket.io:未定义io

来自分类Dev

使用sails.io库将cross-domain-socket.io集成到客户端

Related 相关文章

  1. 1

    Node.js-在同一端口上使用Socket.io和Express

  2. 2

    无法使用ssl打开node.js + socket.io端口

  3. 3

    Sails.js-如何更改Socket.io使用的端口

  4. 4

    无法使用Lighttpd访问Raspberry Pi上的socket.io.js [Node.JS&Socket.IO]

  5. 5

    Socket.io与Node.js

  6. 6

    Socket.IO/Node.JS执行

  7. 7

    Node.JS socket io 连接

  8. 8

    Node.js,socket.io和mongojs-使用socket.io登录表单

  9. 9

    在Express JS中使用Socket IO

  10. 10

    在Express JS中使用Socket IO

  11. 11

    Node.js和Socket.io-动态socket.on()

  12. 12

    使用node.js + socket.io发送通知

  13. 13

    使用Cordova表达Node.js socket.io

  14. 14

    在Node.js中使用socket.io的奇怪错误

  15. 15

    使用node.js和socket.io的私人聊天

  16. 16

    端口443(HTTPS TLS / SSL)上的Node.js + Express.js + Socket.io

  17. 17

    端口443(HTTPS TLS / SSL)上的Node.js + Express.js + Socket.io

  18. 18

    Django模板中的socket.io-node.js不服务socket.io.js

  19. 19

    找不到Socket.io.js(node.js + express + socket.io)

  20. 20

    在openshift上使用socket.io和node.js时,即使指定了端口8000,也无法连接到端口8080错误

  21. 21

    如何使用socket.io访问mysql数据库

  22. 22

    在Android上使用socket.io客户端库

  23. 23

    Node.js Socket.IO客户端未处理的socket.io URL

  24. 24

    Node.js Socket.IO客户端``未处理的socket.io URL''

  25. 25

    部署到heroku时,如何使我的node / socket.io应用使用正确的端口?

  26. 26

    部署到heroku时,如何使我的node / socket.io应用使用正确的端口?

  27. 27

    无法使用node.js加载socket.io:未定义io

  28. 28

    无法使用node.js加载socket.io:未定义io

  29. 29

    使用sails.io库将cross-domain-socket.io集成到客户端

热门标签

归档