“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第2篇文章,点击查看活动详情”
引言
上一篇链接 -> 音视频(5)客户端与网页进行画面实时传输实现简易1对1视频-客户端开发
- 本服务用于转发H.264编码数据,因此仅使用Express框架 + Socket.io
- 需要Node环境 可以去官方下载安装
创建项目
创建文件并初始化
npm init
安装框架
npm install express
npm install socket.io
创建app.js启动文件
app.js
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http,{
cors: {
origin: "*", //设置跨域
methods: ["GET", "POST"] //可用get和post请求
}
});
var cors = require('cors');
app.use(cors());
//链接socket
io.on('connection', function(socket){
//链接成功后
console.log('a user connected');
//订阅消息
socket.on('message', function(h264,w,h){
//向web页面广播发布的消息
io.emit('messageToClient', h264,w,h);
});
});
//启动端口
http.listen(10086, function(){
});
执行服务
node app.js
补充
客户端同时也是需要用到socket
服务
引入socketio
包
dependencies {
//...
implementation ('io.socket:socket.io-client:2.0.0') {
exclude group: 'org.json', module: 'json'
}
}
连接服务
Socket clientSocket;
try {
clientSocket = IO.socket("http://IP地址:10086/");
clientSocket.connect();
} catch (Exception e) {
e.printStackTrace();
}
当编码完成后c调用java
定义的getData
方法接着调用socketio中emit()
方法发送到Node服务中
public void getData(byte[] data,int w,int h) {
clientSocket.emit("message",data,w,h);
}