Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PeerJS文本聊天_Javascript_Websocket_Peerjs - Fatal编程技术网

Javascript PeerJS文本聊天

Javascript PeerJS文本聊天,javascript,websocket,peerjs,Javascript,Websocket,Peerjs,我目前正在编写一个基于web的聊天客户端,其中两个人随机连接,并在没有提示的情况下一起加入聊天 我正在使用PeerJS图书馆,因为我发现它对我来说是最容易理解的。但是我遇到了一个障碍:我不知道如何真正实现文本聊天 我在他们的站点()上查看了他们的示例,并对代码进行了轻微的修改以适合我(主要是它的外观和一些输出) 我遇到的一个问题是,他们的代码需要两个人手动输入另一个人的id,没有这两个人的验证(也就是说,他们都必须输入id并按下“连接”按钮),聊天就无法开始 下面是我在头脑中反复思考的一些代码:

我目前正在编写一个基于web的聊天客户端,其中两个人随机连接,并在没有提示的情况下一起加入聊天

我正在使用PeerJS图书馆,因为我发现它对我来说是最容易理解的。但是我遇到了一个障碍:我不知道如何真正实现文本聊天

我在他们的站点()上查看了他们的示例,并对代码进行了轻微的修改以适合我(主要是它的外观和一些输出)

我遇到的一个问题是,他们的代码需要两个人手动输入另一个人的id,没有这两个人的验证(也就是说,他们都必须输入id并按下“连接”按钮),聊天就无法开始

下面是我在头脑中反复思考的一些代码:

首先,我必须倾听与PeerJS的联系:

myPeer.on("connection", function() {...});
但同时,我想监听在同一客户机上打开连接的情况,因为我不想提示用户输入彼此的ID:

myConn.on("open", function() {...})
但这是不可能的(据我所知),因为在我打开与上面的
myPeer
侦听器的连接之前,我不知道myConn将是什么


我的问题是我不知道如何同时做到这些。如果它有帮助的话,我正在尝试与此同时进行视频聊天,我都知道,如果我能以某种方式借助于那个连接或其他什么,这也行得通。我完全控制着这个项目,所以我几乎可以做任何我想做的事情(包括交换机库,如果一个更容易使用或更发达的话)。连接事件为您提供了一个
数据连接
实例

考虑接收端的以下代码:

var peer = new Peer('clientID');
peer.on('connection', function(con){
    con.on('data', function(data){
        console.log('Incoming data', data);
        con.send('REPLY');
    });
});
现在在发送端使用以下代码:

var peer = new Peer();
var con = peer.connect('clientID');
con.on('data', function(data){ ... });
con.send('HELLO WORLD');
在发送消息之前,等待连接打开是很重要的。对于以上内容,您可以使用
con.on('open',function(){…})


数据连接
的行为类似于TCP套接字。如果您想要双向通信,您可以使用来自2个对等方的2个套接字。因为这个问题已经问了几个月了,我现在就离开双插座解决方案。如果您还需要它,请告诉我。

您是否找到了共享idsIvanhoe的方法,如果我想在同一聊天室中发送消息和文件,该怎么办。我正在查看,但是这个实现对我不起作用。任何帮助都将不胜感激!!对不起,Moh,我刚搬到SimpleWebRTC和信号员那里。我会有多个数据连接,一个用于文件,一个用于聊天。我终于有了一些工作,但我想这是错误的方式,因为每次我想发送文本或文件时,我都会创建一个新的连接。我试着按照你的建议只创建两个连接,但没有成功。你能告诉我怎么解决这个问题吗?这是我的代码,所以peer.on(“connection”,f)会在每条消息上触发吗?如果是这样,为什么不这样保存状态:peer.on(“连接”,函数(c){If(chatConnected!==null)返回;chatConnected=c。。。