我有一个运行良好的Socket.IO服务器(Node.js,NPM),但是现在的问题是它只能在LAN中工作。
我正在使用Socket.IO 2.1.1。
我的IP是我的IPv4地址,端口是80。这是我的server.js代码。
var express = require('express');
//var http = require('http');
var url = require('url');
var socket = require('socket.io');
var crypto = require('crypto');
var fs = require('fs');
//App setup
var app = express();
var server = app.listen(80, function() {
console.log('listening to request on port 80! Yay!');
});
//Static files
app.use(express.static('public'));
io.on('connection', function(socket) {
//stuff to do on connection
}
和客户
var socket = io.connect('http://192.168.254.7:80', {transports:['websocket']});
我也包括了
<script language="javascript" src="http://<ipv4>:80/socket.io/socket.io.js"></script>
其中IPv4是我正在使用的IP地址。
如何将其公开? (不仅是本地/局域网),我尝试更改
io.connect('http://192.168.254.7:80', {transports:['websocket']});
到
io.connect();
我什至将端口从3000更改为8080,再更改为80。
我让我的朋友尝试访问该网站,并且该网站始终显示 网路:: ERR_CONNECTION_TIMED_OUT。它甚至可以加载到对方的设备上吗?
再次,我该如何公开?谢谢。