websocket创建失败_WebSocket无法建立到服务器的连接

在尝试使用WebSocket在Symfony项目上创建React聊天应用时遇到问题,无论使用React-php还是Ratchet库,都无法在浏览器(Chrome和Firefox)上成功建立连接。错误包括Chrome的'INVALID_STATE_ERR: DOM Exception 11'和Firefox的'无法建立到服务器的连接'。尝试使用ws://localhost:8000/和ws://localhost:8000/X/server的URL,但问题仍然存在。
摘要由CSDN通过智能技术生成

我尝试通过WebSocket在我的symfony项目上创建一个简单的聊天页面。 首先,我用React-php库,它完美地适用于终端,但是当我尝试将其连接到浏览器我遇到这个错误对铬:WebSocket无法建立到服务器的连接

Uncaught Error: INVALID_STATE_ERR: DOM Exception 11

,并在Firefox

Firefox can't establish a connection to the server at ws://localhost:8000/.

接下来我用Ratchet库并按照教程,但仍然是同样的问题,终端上工作,在浏览器上的错误。 我对浏览器端和JavaScript中使用telnet localhost 8000是

var conn = new WebSocket('ws://localhost:8000');

conn.onmessage = function(e) {

console.log(e.data);

};

conn.send('Hello World!');

服务器代码阵营

require __DIR__.'/../vendor/autoload.php';

$loop = React\EventLoop\Factory::create();

$socket = new React\Socket\Server($loop);

$conns = new \SplObjectStorage();

$socket->on('connection', function ($conn) use ($conns) {

JSCH(Java Secure Channel Library)是一个用于SSH(Secure Shell)的Java库,它主要用于在Java应用程序中实现客户端与远程服务器之间的安全通信,包括文件传输、命令执行等操作。WebSocket是一种全双工的网络通信协议,常用于实时应用,如在线聊天、游戏等。 如果你想通过JSCH结合WebSocket连接内网服务器,通常的做法是这样的: 1. **使用JSCH建立SSH连接**:首先,你需要通过JSCH创建一个SSH会话到目标服务器,这通常涉及提供用户名、密码、主机名等信息来进行认证。 ```java JSch jsch = new JSch(); Session session = jsch.getSession("username", "your-server-ip", 22); // 使用内网服务器地址和端口 session.setPassword("password"); session.setConfig("StrictHostKeyChecking", "no"); // 避免因为严格的主机密钥检查失败 session.connect(); // 连接服务器 ``` 2. **开启反向代理或穿透**:由于 WebSocket 通常需要公开的网络访问,如果你的内网环境不允许直接外联,你可能需要设置一个反向代理(例如Ngrok或LocalTunnel),将 WebSocket 的流量转发到内网服务器上。 3. **在JSCH中使用Websocket**:一旦SSH连接建立,你可以利用SSH通道来发送数据到内网服务器,然后在那里通过WebSocket技术与内网服务交互。不过注意,直接从SSH通道发送WebSocket消息可能会比较复杂,可能需要自定义一些中间层来处理转换。 4. **数据交换**:在服务器端,内网服务收到WS求后,需要通过SSH通道将响应回传给客户端。这通常涉及到在两个不同的通信上下文中同步工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值