我正在使用Sendbird和cordova 构建聊天应用程序,但是它们似乎为除Javascript之外的所有平台提供推送通知的api .他们有针对Android,ios,Unity和.Net + Xamarin的推送通知..因为我是新手,我不确定JS api是不完整还是他们有设计决定没有实现它.
有人可以帮助我获得Sendbird和Cordova的推送通知,我认为FCM是必需的.
我是Clojure的新手.我有多个线程试图写入输出流和如果我没有错误的套接字和它们的流不是线程安全意味着如果我同时写入它们可以混淆位.clojure的主要好处之一是对竞争条件进行内置并发处理.我如何在我的场景中使用它?
我试着研究原子,参考等等.我最初认为声明输出流是一个原子可以工作,但我不太确定,因为它似乎避免同时改变原子状态(使用交换!)但是我认为你可以从多个线程取消引用一个原子意味着多个线程将deref保存输出流的atom并同时写入它.
任何建议都将是最有帮助的.
提前致谢
(defn send-my-data [output data-bytes]
(try
(.write output)
(.flush output)
(catch Exception excp
(println (format "issue %s" (.printStackTrace excp))))
Run Code Online (Sandbox Code Playgroud)
现在我的所有线程都会在想要将数据写入输出流时调用此函数
我需要一种直接的方式来获得线程局部变量很多我看到的方法与这个版本的clojure不兼容.
在这个例子中看到
例如(thread-local(atom 0)))
(def ^ {:dynamic true} counter)
似乎不适合我
所以我只需指出正确的方向.
java multithreading clojure thread-local thread-local-storage
clojure ×2
chat ×1
concurrency ×1
cordova ×1
java ×1
javascript ×1
outputstream ×1
sendbird ×1
sockets ×1
thread-local ×1