如何为生产服务器设置套接字连接URL?

时间:2019-05-12 23:43:45

标签: javascript node.js angular sockets

我正在将MEAN Stack应用程序部署到生产环境中,我有一个用于实时通知的套接字模块。但是,在检查www.example.com中的错误时,我看到了此错误POST http://www.example.com/socket.io/?EIO=3&transport=polling&t=MgkPNGk 404 (Not Found)

当我尝试连接到localhost:4444(这是我用于与服务器进行套接字通信的端口)时,我的代码可以按预期的方式工作。 但是,在生产中,我无法连接服务器和客户端。 我已经尝试过类似

这样的方法来实现这一目标。
private socket = io(window.location.hostname + ':4444') 
private socket = io('http://www.example.com') 
private socket = io('http://www.example.com:4444') 

但是这些似乎都不起作用。我有什么想念的吗?我确定这只是一个语法错误,但是谁能给我提供一个实现此示例的示例?

//客户代码

import * as io from 'socket.io-client';

@Injectable({providedIn: 'root'})
export class SocketService
{
    private socket = io(window.location.hostname) 
    // private socket = io('http://localhost:4444') <- this works in development and I cant find a solution to do it in production,
    constructor(@Inject(DOCUMENT) private document,
                private http: HttpClient){
                    console.log(window.location.hostname)
                }
}

//服务器代码

var server   = http.createServer(app);
var io       = require('socket.io').listen(server);
var socketHelper = require('./helpers/socketHelper')(io)
server.listen(4444)

0 个答案:

没有答案