如何从不同的主机连接到 socket.io 服务器?

Posted

技术标签:

【中文标题】如何从不同的主机连接到 socket.io 服务器?【英文标题】:How to connect to a socket.io server from different host? 【发布时间】:2017-07-23 09:22:48 【问题描述】:

我有一个网站说 mydomain/home.php

现在我已经在 23.23.234.22/home 设置了一个 NodeJs 服务器(/home 是一个 get 路由)。我已经为 socket.io 服务器编写了代码 最后服务器正在运行。

现在我想在 home.php 中编写与下面给出的代码类似的客户端代码。

我想要的是向 23.23.234.22/home 发送一个请求,当 home.php 打开时,我应该在浏览器的 console 中看到一个套接字响应。我希望每次我向它发出请求时都能正常工作,而不仅仅是在服务器连接时。

我知道,使用此代码将无法正常工作。我不知道如何 去做这个。那么我还需要哪些额外的更改?

socket.js

var express = require('express');
var app = express();

var bodyParser = require('body-parser');
app.use(bodyParser.json(type: '*/*'));
var server = require('http').createServer(app);

 app.get('/home', function(req, res)
   //WRITE SOCKET SERVER CODE HERE?
 );

var io = require('socket.io')(server);

app.use(express.static('/opt/lampp/htdocs/testproject/node_modules'));
app.use(express.static('/opt/lampp/htdocs/testproject/'));

io.on('connection', function(client) 
    console.log("connected");
   client.emit("message", "Some thing to show");
);
server.listen(8080);

home.php

<html lang="en">
<head>

</head>
<body>
<script src="/socket.io/socket.io.js"></script>
<script>

//CHANGE FOLLOWING ADDRESS?
    var socket = io.connect('http://23.23.234.22/home');
    socket.on('connect', function(data) 
        console.log("Connected...");

    );

    socket.on("message", function(data)
        console.log(data);
    );

</script>
</body>
</html>

【问题讨论】:

我有类似的问题有什么解决办法吗? 我在 2 年前退出编码 ???? 是的,它确实解决了 问题 @vch ???? 【参考方案1】:

更改 home.php

var socket = io.connect('http://23.23.234.22/home');

var socket = io.connect('http://23.23.234.22:8080');

【讨论】:

以上是关于如何从不同的主机连接到 socket.io 服务器?的主要内容,如果未能解决你的问题,请参考以下文章

socket.io 客户端可以连接到两个不同的服务器/端口吗?

Heroku - Socket.IO 客户端总是连接到本地主机

如何使用 python 连接到 socket.io

无法从Win Forms C#app连接到远程Node.js Socket.IO服务器

如何设置 socket.io 来源以限制连接到一个 url

重新连接到我的 socket.io 服务器后,没有收到从我的 android 设备发送的事件