javascript - 尝试将 .php 页面连接到在与 PHP 页面不同的端口上运行的套接字服务器
问题描述
我正在一个运行 .php 文件的网站上工作。但是,因为我通过 'localhost' 和指定的 PHP 端口(例如http://localhost:3000/测试站点,我无法访问在另一个端口上创建的套接字。所以如果套接字在端口 8500 上运行,当我启动 .php 网页(使用括号和 MAMP),我无法找到连接到端口 8500 上的套接字的方法,因为我已经在http://localhost:3000/上。如何连接到套接字但保持打开状态我当前所在的 .php 页面?
main_game.php JavaScript:
<script src="main_game.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
$(function() {
var socket = io();
$('form').submit(function(e) {
e.preventDefault();
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
socket.on('chat message', function(msg){
//$('#messages').append($('<li>').text(msg)); For later
});
});
</script>
页面顶部有 PHP 来保存会话数据,因此我无法将文件类型更改为 .html。套接字正在侦听端口 8501,但 .php 正在 localhost:8500 上运行
NodeJS 脚本:
var app = require('express')();
var http = require('http').createServer(app);
var io = require('socket.io')(http);
app.get('/', (req, res) => {
res.sendFile('/Users/path.../main_game.php');
});
http.listen(8501, () => {
console.log('listening on *:8501');
});
io.on('connection', (socket) => {
console.log('a user connected');
socket.on('disconnect', () => {
console.log('user disconnected');
});
socket.on('chat message', (msg) => {
io.emit('chat message', msg);
});
});
解决方案
推荐阅读
- javascript - 如何启用 .click 事件,如果它是从一个函数调用的,如果页面直接加载它不应该被加载
- javascript - 在另一个模块中注入模块并使用注入模块的控制器
- django - Django:将 ListView 与 UpdateView 结合使用
- r - 使用 Shiny 添加/删除项目管理
- virtualbox - 虚拟化 Windows 10 上的 Virtualbox 仅显示 32 位模板?
- ruby-on-rails - Action Mailer 的问题
- codenameone - 在 PropertyBusinessObject 中存储任意对象
- .net - 如何将 SQLite 数据库中的文本与文本文件中本地保存的某些文本进行比较?
- java - Android:选择了水平日历错误的日期
- c++ - 在模板类中定义的枚举上嵌套类的部分特化