通过LAN托管Socket.io服务器

女武神

我建立Socket.IO的例子聊天项目(含部分变更)和我一直试图让人们既连接localhost:3000127.0.0.1:3000,但也都在工作。我想念什么吗?(如果有明显的问题,抱歉。我很讨厌网络。)

index.js:

var app=require('express')();
var http=require('http').Server(app);
var io=require('socket.io')(http);
var chalk=require('chalk');

var online=0;
var prt=process.argv[2]===undefined?3000:process.argv[2];

process.stdin.on('data',function(){
    var str=String(process.stdin.read());
    if(str.search("!quit")){
        io.emit('chat message','Console: stopping server.');
        process.exit();
    }
});

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

io.on('connection',function(socket){
    online++;
    console.log(chalk.green('joined  |',chalk.cyan(online),'online'));

    socket.on('chat message',function(msg){
        io.emit('chat message',msg);
        console.log(chalk.magenta('message |',msg));
    });

    socket.on('disconnect',function(){
        online--;
        console.log(chalk.red('left    |',chalk.cyan(online),'online'));
    });
});

http.listen(prt,function(){
    console.log(chalk.yellow('SIOChat listening on',chalk.cyan(prt)));
});

index.html(出于可读性考虑,省略了CSS):

<html>
    <head>
        <title>SIOChat</title>
    </head>
    <body>
        <ul id='messages'></ul>
        <form action=''>
            <input id='m' autocomplete='off'/><button>Send</button>
        </form>
        <script src='https://cdn.socket.io/socket.io-1.2.0.js'></script>
        <script src='http://code.jquery.com/jquery-1.11.1.js'></script>
        <script>
            var socket=io();

            var name=prompt('Enter a nickname','Guest');

            $('form').submit(function(){
                socket.emit('chat message',name+': '+$('#m').val());
                $('#m').val('');
                return false;
            });

            socket.on('chat message',function(msg){
                $('#messages').append($('<li>').text(msg));
            });
        </script>
    </body>
</html>
迷迭香

localhost您自己的机器的名称如果网络上的另一台计算机尝试连接localhost,则它们将连接到自己的计算机同样,127.0.0.1这就是所谓的环回地址,它告诉套接字直接连接到您自己的计算机(在大多数情况下localhost,主机名实际上可以解析为127.0.0.1ip地址)。

网络上的其他计算机将需要通过IP地址连接到您的计算机。

您可以通过ipconfig在命令提示符下(在Windows上)或ifconfigLinux / OSX键入来查找IP地址

例如,如果您的IP地址是192.168.1.100,则其他计算机将需要使用类似以下的地址连接到您的计算机192.168.1.100:3000

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过LAN托管Socket.io服务器

来自分类Dev

通过 https 服务器连接 socket.io

来自分类Dev

连接到Azure移动服务上托管的Socket.IO服务器返回错误

来自分类Dev

浏览器中的Socket.io服务器

来自分类Dev

Socket.io服务器到服务器(将消息发送到特定服务器)

来自分类Dev

Socket.io服务器到服务器(将消息发送到特定服务器)

来自分类Dev

服务器到服务器的Socket IO消息传递

来自分类Dev

NodeJS Socket.io服务器<->服务器通信

来自分类Dev

socket.io 服务器是否需要连接到 http 服务器?

来自分类Dev

如何在同一LAN上找到Socket.IO服务器?

来自分类Dev

socket.io无法连接到服务器

来自分类Dev

如何从Socket.IO服务器发送确认?

来自分类Dev

Socket.io在服务器端丢失数据

来自分类Dev

从phonegap连接到socket.io服务器

来自分类Dev

捕获socket.io服务器关闭错误

来自分类Dev

Socket.io服务器无法广播到房间

来自分类Dev

Ubuntu Linux上的永久socket.io服务器

来自分类Dev

停止服务器后,增加连接socket.io

来自分类Dev

连接到socket.io服务器

来自分类Dev

如何连续运行socket.io服务器?

来自分类Dev

从phonegap连接到socket.io服务器

来自分类Dev

在C#中运行socket.io服务器

来自分类Dev

用于socket.io的专用服务器?

来自分类Dev

节点服务器无法从Socket.IO接收消息

来自分类Dev

不同服务器上的Socket.IO房间

来自分类Dev

Node.js服务器对Socket.IO的解释?

来自分类Dev

socket.io:从服务器节点js接收数据

来自分类Dev

Perl IO::Socket::SSL 与 Web 服务器挂起

来自分类Dev

与 Node 服务器 + Socket.io 通信的 HTML 按钮