问题描述
Xampp 在这里控制我的本地虚拟主机进行测试。我正在尝试让棘轮工作并正确创建 Web 服务器。问题是当我告诉系统转到 JS 中的 web socket 主机地址时,系统没有响应。
我知道我希望该地址等于当前地址。我将把它放在请求中,以便 JS 知道它是什么,但现在让我们说它 local.ezbusinessmanager.com 作为基本域,我将 Web 套接字服务器的端口设置为 8080。我有在名为 ChatServerCommand 的命令对象中执行此操作。
/**
* Implement this method with your command's logic.
* This starts the socket server.
* Throws random warnings and errors most of the time on purpose.
* If it makes it all the way through,you win!
*
* @param Arguments $args The command arguments.
* @param ConsoleIo $io The console io
* @return void The exit code or null for success
*/
public function execute(Arguments $args,ConsoleIo $io): void
{
$port = $args->getArgument('port') ? intval($args->getArgument('port')) : 8080;
$domain = Configure::read('App.fullBaseUrl') !== "localhost" ? Configure::read('App.fullBaseUrl') : 'local.ezbusinessmanager.com';
$this->prepareDomain($domain);
$io->success("Socket server Now running on ws://$domain:$port");
$server = new App($domain,$port);
$server->route($domain,new Chat(),['*']);
$server->run();
}
/**
* Remove http,https,www,and slashes from domain string.
*
* @param string $domain Domain to be prepared.
*/
public function prepareDomain(string &$domain): void
{
// If URI is like,eg. www.way2tutorial.com/
$domain = trim($domain,'/');
// If not have http:// or https:// then prepend it
if (!preg_match('#^http(s)?://#',$domain)) {
$domain = 'http://' . $domain;
}
$urlParts = parse_url($domain);
// Remove www.
$domain = preg_replace('/^www\./','',$urlParts['host']);
}
当我调用命令时它似乎运行,但是当我到达我的页面时,它告诉我它无法连接 它没有到达服务器,因为如果后端有任何东西,Chat() 对象应该发送日志错误。
我用这个脚本调用它
"use strict";
const conn = new WebSocket('ws://local.ezbusinessmanager.com:8080');
conn.onopen = () => {
console.log('connected to server...');
};
conn.onerror = e => {
console.error('An error has occurred:',e.type);
};
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)