我在玩Websocket,媒体API,浏览器和Node.js。我的目标是使两个成员能够实时对话。
所需逻辑
client-1_mic -> client-1_browser --> nodejs server -> client-2_browser -> client-2_speaker
Run Code Online (Sandbox Code Playgroud)
我知道,WebRTC有一种方法,但是我想通过websockets实现。
注意:我使用以下工具:Firefox v56 / 57浏览器,NodeJS(v8),NPM,Ubuntu服务器。
我目前的解决方案现在可以通过网络套接字(也存在通道)进行通信,因此可以进行基本的聊天。
我用于通信的服务器端(server.js)部分:
socket.on('audio', function (data) {
if (socket.username in userTargets && userTargets[socket.username] in usersInRoom) {
io.sockets.connected[usersInRoom[userTargets[socket.username]].socket].emit('updatechat', socket.username, 'New audio arrived');
// send to itself
io.sockets.connected[socket.id].emit('updatechat', socket.username, 'To ' + userTargets[socket.username] + '> here is some new audio');
// Audio passing
io.sockets.connected[usersInRoom[userTargets[socket.username]].socket].emit('audio', socket.username, data);
} else {
io.sockets.in(socket.room).emit('updatechat', socket.username, 'Some audio arrived');
// Audio global spam @todo later add restrict agains the sender …Run Code Online (Sandbox Code Playgroud)