如何从不同的主机连接到 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 客户端总是连接到本地主机