前端连接了websocket 获取不到客户端的client_id, 请求 使用tp5 gateway-worker
var ws = new WebSocket("ws://127.0.0.1:8282");
ws.onopen = function() {
$('.msgUl').append('<li>已连接上...</li>')
sendValue();
};
ws.onmessage = function(evt) {
console.log(evt) // 打印出来 evt.client_id 为空
$('.msgUl').append('<li>接收到:' + evt.data + '</li>')
// 连接成功
$('.msgUl').append('<li>client_id:' + evt.client_id + '</li>')
var client = evt.data;
var split_client = client.split(" ");
if (evt.type == 'onConnect') {
$.ajax({
type: "post",
url: "/index.php/index/Index/user_bind",
data: {
client_id: split_client[0]
},
dataType: "json",
success: function (data) {
console.log('成功')
}
});
} else if (evt.type == 'ping') {
// 心跳检测 不做任何处理
} else if (evt.type == 'chatGroup') {
// 群组聊天
$('.msgUl').append('<li>接收到:' + evt.data + '</li>')
}
};
ws.onclose = function() {
// console.log('连接已关闭...');
$('.msgUl').append('<li>连接已关闭...</li>')
};
function sendValue() {
$('#sendButton').click(function() {
var thisValue = $('#sendValue').val();
if (thisValue) {
ws.send(thisValue);
$('.msgUl').append('<li>发送数据:' + thisValue + '</li>')
$.get("/index.php/index/Index/send_msg/msg/"+thisValue,function (data,status) {
console.log('成功:'+thisValue)
});
}
})
}
1个回答
年代过于久远,无法发表回答
你需要贴出你 gateway-worker 怎么获取客户端IP的代码。而不是JS的代码。
gateway-worker 通常使用以下方法获取
更多观看:https://www.workerman.net/doc/gateway-worker/get-ip.html
是需要获取到客户端的ip 在获取client_id 吗?
gateway 是不走 Events 的啊
看上面的官方文档