java中使用pusher客户端类库连接服务时会出现连接失败问题。
java的pusher类库 执行连接地址拼接地时候默认会把端口信息拼接上去,从而导致server进行连接校验的时候无法获取到app_key,导致连接认证失败
去除这里的空格
感谢反馈,已做兼容
大佬想问个问题,webman USR 有人物联服务应用插件,是不是一定要有一个 类似转接器的东西来转换转换数据(接入 4G DTU:USR-G776、USR-G771),如果没有这个是不是就用不了
对 用来对接有人的设备的。 比如USR-G776:https://www.usr.cn/Product/255.html
楼主有java的pusher 对接的例子没,方便分享一下不 我去年用java 的pusher 对接push 搞了好多天都没对接上,(我java水平不咋地) 后来被迫自己重新建立了一个 websocket git上找了一份java 的 websocket代码 对接使用的,至今都让我很不爽,因为多搞了一套websocket服务
想直接用push 插件 这样舒服些 但是对接不好
代码在下面评论 对接的服务是:https://www.workerman.net/app/view/pusher
谢谢老哥
Java Pusher Client
package com.hsk99; import java.util.Set; import com.alibaba.fastjson.JSONObject; import com.pusher.client.Pusher; import com.pusher.client.PusherOptions; import com.pusher.client.channel.ChannelEventListener; import com.pusher.client.channel.PresenceChannelEventListener; import com.pusher.client.channel.PrivateChannelEventListener; import com.pusher.client.channel.PusherEvent; import com.pusher.client.channel.User; import com.pusher.client.connection.ConnectionEventListener; import com.pusher.client.connection.ConnectionState; import com.pusher.client.connection.ConnectionStateChange; import com.pusher.client.util.HttpAuthorizer; /** * Pusher CLient * * @author HSK * @date 2022-03-02 13:46:06 */ public final class App { /** * Pusher Server Host * * @var string */ static String APP_HOST = "127.0.0.1"; /** * Pusher Server Port * * @var int */ static int APP_PORT = 8801; /** * Pusher app key * * @var string */ static String APP_KEY = "8ad6857a617ec78364c04b2c353abfa8"; /** * Pusher private authentication address */ static String APP_AUTH = "http://127.0.0.1:8787/app/pusher/connect/auth?access_key=" + APP_KEY + "&user_id=89&user_info={'name':'李四89'}"; /** * Run * * @author HSK * @date 2022-03-02 13:46:06 * * @param args * @throws InterruptedException */ public static void main(String[] args) throws InterruptedException { PusherOptions options = new PusherOptions() .setUseTLS(false) .setHost(APP_HOST) .setWsPort(APP_PORT) .setAuthorizer(new HttpAuthorizer(APP_AUTH)); Pusher pusher = new Pusher(APP_KEY, options); pusher.connect(new ConnectionEventListener() { @Override public void onConnectionStateChange(ConnectionStateChange change) { System.out.println("State changed to " + change.getCurrentState() + " from " + change.getPreviousState()); } @Override public void onError(String message, String code, Exception e) { System.out.println("There was a problem connecting!"); } }, ConnectionState.ALL); // Public channels pusher.subscribe("public", new ChannelEventListener() { @Override public void onSubscriptionSucceeded(String channelName) { } @Override public void onEvent(PusherEvent event) { System.out.println("Public channels"); System.out.println("raw data:" + event.getData()); JSONObject object = JSONObject.parseObject(event.getData()); System.out.println("object data:" + object); } }, "message"); // Private channels pusher.subscribePrivate("private-message", new PrivateChannelEventListener() { @Override public void onSubscriptionSucceeded(String channelName) { } @Override public void onEvent(PusherEvent event) { System.out.println("Private channels"); System.out.println("raw data:" + event.getData()); JSONObject object = JSONObject.parseObject(event.getData()); System.out.println("object data:" + object); } @Override public void onAuthenticationFailure(String message, Exception e) { } }, "message"); // Presence channels pusher.subscribePresence("presence-message", new PresenceChannelEventListener() { @Override public void onSubscriptionSucceeded(String channelName) { } @Override public void onEvent(PusherEvent event) { System.out.println("Presence channels"); System.out.println("raw data:" + event.getData()); JSONObject object = JSONObject.parseObject(event.getData()); System.out.println("object data:" + object); } @Override public void onAuthenticationFailure(String message, Exception e) { System.out.println(message); } @Override public void onUsersInformationReceived(String arg0, Set<User> arg1) { System.out.println("Unimplemented method 'onUsersInformationReceived'"); System.out.println(arg0); System.out.println(arg1); } @Override public void userSubscribed(String arg0, User arg1) { System.out.println("Unimplemented method 'userSubscribed'"); System.out.println(arg0); System.out.println(arg1); } @Override public void userUnsubscribed(String arg0, User arg1) { System.out.println("Unimplemented method 'userUnsubscribed'"); System.out.println(arg0); System.out.println(arg1); } }, "message"); pusher.connect(); while (true) { Thread.sleep(1000); } } }
运行示例
感谢反馈,已做兼容
大佬想问个问题,webman USR 有人物联服务应用插件,是不是一定要有一个 类似转接器的东西来转换转换数据(接入 4G DTU:USR-G776、USR-G771),如果没有这个是不是就用不了
对 用来对接有人的设备的。 比如USR-G776:https://www.usr.cn/Product/255.html
楼主有java的pusher 对接的例子没,方便分享一下不
我去年用java 的pusher 对接push 搞了好多天都没对接上,(我java水平不咋地)
后来被迫自己重新建立了一个 websocket git上找了一份java 的 websocket代码 对接使用的,至今都让我很不爽,因为多搞了一套websocket服务
想直接用push 插件 这样舒服些 但是对接不好
代码在下面评论 对接的服务是:https://www.workerman.net/app/view/pusher
谢谢老哥